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

void gold::
     gc_process_relocs<32,_true,_(anonymous_namespace)::Target_s390<32>,_(anonymous_namespace)::Target_s390<32>::Scan,_gold::Default_classify_reloc<4,_32,_true>_>
               (Symbol_table *symtab,Layout *param_2,Target_s390<32> *target,
               Sized_relobj_file<32,_true> *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;
  Garbage_collection *pGVar3;
  _Base_ptr p_Var4;
  Target *pTVar5;
  _Base_ptr p_Var6;
  _func_int_varargs **pp_Var7;
  iterator __position;
  code *pcVar8;
  uint uVar9;
  char cVar10;
  uint uVar11;
  uint uVar12;
  ulong to;
  General_options *pGVar13;
  iterator iVar14;
  size_t sVar15;
  iterator iVar16;
  _Base_ptr p_Var17;
  Xindex *this;
  const_iterator cVar18;
  uint uVar19;
  long lVar20;
  byte bVar21;
  pointer pcVar22;
  ushort uVar23;
  byte *pbVar24;
  _func_int_varargs **pp_Var25;
  _Alloc_hider _Var26;
  Relobj *pRVar27;
  undefined4 in_register_00000084;
  uint *puVar28;
  byte bVar29;
  uint uVar30;
  uint uVar31;
  ulong uVar32;
  undefined1 uVar33;
  bool bVar34;
  bool bVar35;
  bool bVar36;
  undefined1 uVar37;
  bool bVar38;
  byte bVar39;
  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;
  uint local_12c;
  Output_segment *local_118;
  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_s390<32> *local_a8;
  uint local_a0;
  Section_id src_id_2;
  Section_id dst_id;
  string src_section_name;
  Section_id src_id;
  
  puVar28 = (uint *)CONCAT44(in_register_00000084,src_indx);
  bVar39 = 0;
  uVar19 = (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->s390_info + 0x80))
              (&src_section_name,target,(ulong)src_obj & 0xffffffff);
  }
  _Var26._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_00170ea5:
    bVar35 = 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 {
    pcVar22 = (pointer)0xffffffffffffffff;
    src_id.first = (Relobj *)&stack0xffffffffffffffb8;
    uVar33 = 0;
    uVar37 = src_section_name._M_dataplus._M_p == (pointer)0x0;
    if (!(bool)uVar37) {
      sVar15 = strlen(src_section_name._M_dataplus._M_p);
      pcVar22 = _Var26._M_p + sVar15;
    }
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>
              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,
               _Var26._M_p,pcVar22);
    lVar20 = 5;
    pbVar24 = (byte *)".text";
    pRVar27 = src_id.first;
    do {
      if (lVar20 == 0) break;
      lVar20 = lVar20 + -1;
      bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;
      uVar33 = *pbVar24 < bVar29;
      uVar37 = *pbVar24 == bVar29;
      pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;
      pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);
    } while ((bool)uVar37);
    bVar35 = false;
    bVar36 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;
    if (!bVar36) {
      lVar20 = 0xf;
      pbVar24 = (byte *)".gnu.linkonce.t";
      pRVar27 = src_id.first;
      do {
        if (lVar20 == 0) break;
        lVar20 = lVar20 + -1;
        bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;
        bVar35 = *pbVar24 < bVar29;
        bVar36 = *pbVar24 == bVar29;
        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;
        pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);
      } while (bVar36);
      if ((!bVar35 && !bVar36) != bVar35) {
        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {
          operator_delete(src_id.first);
        }
        goto LAB_00170ea5;
      }
    }
    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {
      operator_delete(src_id.first);
    }
    src_id.second = uVar19;
    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_168 = &local_160->addend_info;
    local_148 = &local_160->offset_info;
    local_170 = &local_160->reloc_addend_size_info;
    bVar35 = true;
  }
  if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->icf_status_ == ICF_SAFE) &&
     (cVar10 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar10 != '\0')) {
    pcVar8 = *(code **)(*(long *)param_2 + 0x10);
    if (pcVar8 != Target::section_may_have_icf_unsafe_pointers) {
                    /* try { // try from 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */
      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);
      goto LAB_00170f04;
    }
    pcVar8 = *(code **)(*(long *)param_2 + 0x98);
    bVar36 = pcVar8 < Target::do_section_may_have_icf_unsafe_pointers;
    bVar38 = pcVar8 == Target::do_section_may_have_icf_unsafe_pointers;
    if (!bVar38) {
      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);
      goto LAB_00170f04;
    }
    lVar20 = 0xc;
    pbVar24 = (byte *)".rodata._ZTV";
    _Var26 = src_section_name._M_dataplus;
    do {
      if (lVar20 == 0) break;
      lVar20 = lVar20 + -1;
      bVar36 = *pbVar24 < (byte)*_Var26._M_p;
      bVar38 = *pbVar24 == *_Var26._M_p;
      pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;
      _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);
    } while (bVar38);
    bVar34 = false;
    bVar36 = (!bVar36 && !bVar38) == bVar36;
    if (!bVar36) {
      lVar20 = 0x11;
      pbVar24 = (byte *)".data.rel.ro._ZTV";
      _Var26 = src_section_name._M_dataplus;
      do {
        if (lVar20 == 0) break;
        lVar20 = lVar20 + -1;
        bVar34 = *pbVar24 < (byte)*_Var26._M_p;
        bVar36 = *pbVar24 == *_Var26._M_p;
        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;
        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);
      } while (bVar36);
      bVar38 = false;
      bVar36 = (!bVar34 && !bVar36) == bVar34;
      if (!bVar36) {
        lVar20 = 0xc;
        pbVar24 = (byte *)".rodata._ZTC";
        _Var26 = src_section_name._M_dataplus;
        do {
          if (lVar20 == 0) break;
          lVar20 = lVar20 + -1;
          bVar38 = *pbVar24 < (byte)*_Var26._M_p;
          bVar36 = *pbVar24 == *_Var26._M_p;
          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;
          _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);
        } while (bVar36);
        bVar34 = false;
        bVar36 = (!bVar38 && !bVar36) == bVar38;
        if (!bVar36) {
          lVar20 = 0x11;
          pbVar24 = (byte *)".data.rel.ro._ZTC";
          _Var26 = src_section_name._M_dataplus;
          do {
            if (lVar20 == 0) break;
            lVar20 = lVar20 + -1;
            bVar34 = *pbVar24 < (byte)*_Var26._M_p;
            bVar36 = *pbVar24 == *_Var26._M_p;
            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;
            _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);
          } while (bVar36);
          bVar38 = false;
          bVar36 = (!bVar34 && !bVar36) == bVar34;
          if (!bVar36) {
            lVar20 = 9;
            pbVar24 = (byte *)".eh_frame";
            _Var26 = src_section_name._M_dataplus;
            do {
              if (lVar20 == 0) break;
              lVar20 = lVar20 + -1;
              bVar38 = *pbVar24 < (byte)*_Var26._M_p;
              bVar36 = *pbVar24 == *_Var26._M_p;
              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;
              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);
            } while (bVar36);
            local_135 = (!bVar38 && !bVar36) != bVar38;
            goto LAB_00170f04;
          }
        }
      }
    }
  }
  local_135 = '\0';
LAB_00170f04:
  if (prelocs != (uchar *)0x0) {
    local_140 = (_func_int_varargs **)0x0;
    local_100 = (uchar *)0x0;
    do {
      uVar11 = puVar28[1];
      uVar9 = uVar11 >> 0x18;
      uVar30 = puVar28[2];
      uVar31 = ((uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18) >> 8;
      uVar11 = uVar30 >> 0x18 | (uVar30 & 0xff0000) >> 8 | (uVar30 & 0xff00) << 8 | uVar30 << 0x18;
      if (uVar31 < reloc_count) {
        if (param_8 == (Output_section *)0x0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");
        }
        uVar30 = uVar31 << 4;
        uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);
        uVar23 = uVar23 << 8 | uVar23 >> 8;
        uVar12 = (uint)uVar23;
        if (uVar23 < 0xff00) {
LAB_001710c0:
          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +
                            (ulong)uVar30 + 4);
          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |
                   uVar31 << 0x18;
          local_12c = uVar11 + uVar31;
          if (bVar35) {
            src_id.second = uVar12;
            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);
            bVar36 = true;
            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)
                == 3) goto LAB_00171112;
LAB_00170fb2:
            src_id.first = (Relobj *)0x0;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                      (local_158,(Symbol **)&src_id);
            goto LAB_00170fcd;
          }
        }
        else {
          if (uVar23 == 0xffff) {
            this = (Xindex *)(target->s390_info).rosegment_gap;
            if (this == (Xindex *)0x0) {
              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);
              (target->s390_info).rosegment_gap = (uint64_t)this;
            }
            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);
            goto LAB_001710c0;
          }
          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +
                            (ulong)uVar30 + 4);
          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |
                   uVar31 << 0x18;
          local_12c = uVar11 + uVar31;
          if (!bVar35) goto LAB_00171042;
          src_id.first = (Relobj *)0x0;
          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;
                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */
          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);
          bVar36 = false;
          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=
              3) goto LAB_00170fb2;
LAB_00171112:
          src_id.first = (Relobj *)0xffffffffffffffff;
          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                    (local_158,(Symbol **)&src_id);
LAB_00170fcd:
          src_id.first = (Relobj *)(ulong)uVar31;
          src_id._8_8_ = SEXT48((int)uVar11);
          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);
          uVar11 = *puVar28;
          src_id.first = (Relobj *)
                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8
                                | uVar11 << 0x18);
          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 (!bVar36) goto LAB_00171042;
        }
        local_118 = (Output_segment *)target;
        if ((local_135 == '\0') ||
           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) == 1
           )) {
LAB_001711d0:
          if (uVar19 != uVar12) goto LAB_001711e3;
        }
        else {
          pGVar13 = parameters->options_;
          if (pGVar13 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
          }
          if (((pGVar13->shared_).value != false) ||
             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))) {
            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);
            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);
            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;
            local_a8 = target;
            std::
            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
            ::
            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);
            goto LAB_001711d0;
          }
          if (uVar19 == uVar12) goto LAB_00171042;
LAB_001711f7:
          if ((pGVar13->gc_sections_).value != false) {
            pGVar3 = symtab->gc_;
            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent;
            cVar18._M_node =
                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;
            dst_id.first = (Relobj *)local_118;
            p_Var17 = cVar18._M_node;
            src_id_2.first = (Relobj *)target;
            src_id_2.second = uVar19;
            dst_id.second = uVar12;
            if (p_Var4 == (_Base_ptr)0x0) {
LAB_00171288:
              local_c8._M_head_impl = &src_id_2;
              iVar14 = 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<>_>
                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,
                                  (piecewise_construct_t *)&std::piecewise_construct,
                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,
                                  &local_ea);
            }
            else {
              do {
                while ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target
                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&
                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {
                  pp_Var1 = &(iVar14._M_node)->_M_right;
                  iVar14._M_node = p_Var17;
                  p_Var4 = *pp_Var1;
                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;
                }
                p_Var17 = iVar14._M_node;
                p_Var4 = (iVar14._M_node)->_M_left;
              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);
LAB_0017126a:
              bVar36 = iVar14._M_node == cVar18._M_node;
              cVar18._M_node = iVar14._M_node;
              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||
                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&
                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;
            }
            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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);
            pTVar5 = parameters->target_;
            if (pTVar5 == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");
            }
            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {
              (*pTVar5->_vptr_Target[0x41])
                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,
                         (ulong)local_12c);
            }
            if (local_140 != (_func_int_varargs **)0x0) {
              pGVar3 = symtab->gc_;
              src_id.first = (Relobj *)&stack0xffffffffffffffb8;
              sVar15 = 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 + sVar15));
              iVar16 = std::
                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
                       ::find(&(pGVar3->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);
              }
              pGVar3 = symtab->gc_;
              if ((_Rb_tree_header *)iVar16._M_node !=
                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {
                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                         _M_parent;
                cVar18._M_node =
                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;
                src_id.second = uVar19;
                p_Var17 = cVar18._M_node;
                if (p_Var4 == (_Base_ptr)0x0) {
LAB_001717c0:
                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;
                  src_id.first = (Relobj *)target;
                  iVar14 = 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<>_>
                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,
                                      (piecewise_construct_t *)&std::piecewise_construct,
                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)
                                      &local_c0,&local_e9);
                }
                else {
                  do {
                    while ((iVar14._M_node = p_Var4,
                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||
                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&
                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {
                      pp_Var1 = &(iVar14._M_node)->_M_right;
                      iVar14._M_node = p_Var17;
                      p_Var4 = *pp_Var1;
                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;
                    }
                    p_Var17 = iVar14._M_node;
                    p_Var4 = (iVar14._M_node)->_M_left;
                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);
LAB_001713d2:
                  bVar36 = cVar18._M_node == iVar14._M_node;
                  cVar18._M_node = iVar14._M_node;
                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||
                     ((src_id.first = (Relobj *)target,
                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&
                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;
                }
                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;
                    p_Var6 = *(_Base_ptr *)p_Var6) {
                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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>_>
                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar31 < target[1].got_mod_index_offset_) {
          dst_id.first = (Relobj *)0x0;
LAB_001716a8:
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");
        }
        uVar32 = (ulong)(uVar31 - target[1].got_mod_index_offset_);
        if ((ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)
            <= uVar32) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");
        }
        dst_id.first = *(Relobj **)(*(long *)&target[2].s390_info + uVar32 * 8);
        if (dst_id.first == (Relobj *)0x0) goto LAB_001716a8;
        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) {
          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;
          local_118 = ((anon_union_8_3_b0f6f408_for_u1_ *)
                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;
          local_12c = uVar11 + uVar30;
          if (((ulong)local_118->output_lists_[2].
                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                      _M_impl._M_finish & 0x100000000) == 0) {
            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;
            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;
            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;
            uVar33 = bVar21 < 2;
            uVar37 = bVar21 == 2;
            if ((bool)uVar37) {
              uVar33 = 0;
              uVar37 = local_135 == '\0';
              if (!(bool)uVar37) {
                uVar33 = false;
                uVar37 = bVar29 == 0;
                if (!(bool)uVar37) {
                  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) {
                    uVar33 = false;
                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;
                    if (!(bool)uVar37) goto LAB_00171878;
                  }
                  uVar33 = uVar9 < 0x3a;
                  uVar37 = uVar9 == 0x3a;
                  if ((0x3a < uVar9) ||
                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33
                     )) goto LAB_001714f0;
                }
LAB_00171878:
                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;
                local_b8 = local_118;
                local_b0 = uVar12;
                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);
              }
            }
          }
          else {
            local_118 = (Output_segment *)0x0;
            bVar29 = 0;
            uVar33 = 0;
            uVar12 = 0;
            uVar37 = 1;
          }
        }
        else {
          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;
          bVar29 = 0;
          local_118 = (Output_segment *)0x0;
          local_12c = uVar11 + uVar30;
          uVar33 = 0;
          uVar12 = 0;
          uVar37 = 1;
        }
LAB_001714f0:
        pp_Var7 = ((dst_id.first)->super_Object)._vptr_Object;
        lVar20 = 8;
        pbVar24 = (byte *)"__start_";
        pp_Var25 = pp_Var7;
        do {
          if (lVar20 == 0) break;
          lVar20 = lVar20 + -1;
          uVar33 = *pbVar24 < *(byte *)pp_Var25;
          uVar37 = *pbVar24 == *(byte *)pp_Var25;
          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;
          pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);
        } while ((bool)uVar37);
        bVar36 = false;
        bVar38 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;
        if (bVar38) {
          pp_Var7 = pp_Var7 + 1;
        }
        else {
          lVar20 = 7;
          pbVar24 = (byte *)"__stop_";
          pp_Var25 = pp_Var7;
          do {
            if (lVar20 == 0) break;
            lVar20 = lVar20 + -1;
            bVar36 = *pbVar24 < *(byte *)pp_Var25;
            bVar38 = *pbVar24 == *(byte *)pp_Var25;
            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;
            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);
          } while (bVar38);
          pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);
          if ((!bVar36 && !bVar38) != bVar36) {
            pp_Var7 = local_140;
          }
        }
        local_140 = pp_Var7;
        if (bVar35) {
          if (bVar29 == 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.second = uVar12;
            src_id.first = (Relobj *)local_118;
            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 = (Relobj *)(ulong)uVar30;
          src_id._8_8_ = SEXT48((int)uVar11);
          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);
          uVar11 = *puVar28;
          src_id.first = (Relobj *)
                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8
                                | uVar11 << 0x18);
          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 (bVar29 != 0) {
LAB_001711e3:
          pGVar13 = parameters->options_;
          if (pGVar13 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
          }
          goto LAB_001711f7;
        }
      }
LAB_00171042:
      local_100 = local_100 + 1;
      puVar28 = puVar28 + 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_00170e10(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,
                 ulong param_7,long param_8)

{
  undefined8 *puVar1;
  long *plVar2;
  code *pcVar3;
  uint uVar4;
  char cVar5;
  uint uVar6;
  uint uVar7;
  long lVar8;
  size_t sVar9;
  long lVar10;
  long lVar11;
  long lVar12;
  long lVar13;
  byte *pbVar14;
  ushort uVar15;
  byte *pbVar16;
  byte *pbVar17;
  byte *pbVar18;
  byte bVar19;
  long lVar20;
  uint uVar21;
  ulong uVar22;
  undefined1 uVar23;
  bool bVar24;
  bool bVar25;
  bool bVar26;
  undefined1 uVar27;
  bool bVar28;
  byte bVar29;
  long local_170;
  long local_168;
  long local_160;
  long local_158;
  long local_148;
  byte *local_140;
  char local_135;
  int local_12c;
  byte *local_118;
  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];
  
  bVar29 = 0;
  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {
    local_78[0] = local_68;
    FUN_00174550(local_78,"");
  }
  else {
    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);
  }
  pbVar17 = local_78[0];
  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {
LAB_00170ea5:
    bVar25 = false;
    local_170 = 0;
    local_148 = 0;
    local_168 = 0;
    local_158 = 0;
    local_160 = 0;
  }
  else {
    pbVar14 = (byte *)0xffffffffffffffff;
    local_58 = local_48;
    uVar23 = 0;
    uVar27 = local_78[0] == (byte *)0x0;
    if (!(bool)uVar27) {
      sVar9 = strlen((char *)local_78[0]);
      pbVar14 = pbVar17 + sVar9;
    }
    FUN_00174550(&local_58,pbVar17,pbVar14);
    lVar20 = 5;
    pbVar17 = (byte *)".text";
    pbVar14 = local_58;
    do {
      if (lVar20 == 0) break;
      lVar20 = lVar20 + -1;
      uVar23 = *pbVar17 < *pbVar14;
      uVar27 = *pbVar17 == *pbVar14;
      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
    } while ((bool)uVar27);
    bVar25 = false;
    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;
    if (!bVar26) {
      lVar20 = 0xf;
      pbVar17 = (byte *)".gnu.linkonce.t";
      pbVar14 = local_58;
      do {
        if (lVar20 == 0) break;
        lVar20 = lVar20 + -1;
        bVar25 = *pbVar17 < *pbVar14;
        bVar26 = *pbVar17 == *pbVar14;
        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
      } while (bVar26);
      if ((!bVar25 && !bVar26) != bVar25) {
        if (local_58 != local_48) {
          FUN_002f1e60(local_58);
        }
        goto LAB_00170ea5;
      }
    }
    if (local_58 != local_48) {
      FUN_002f1e60(local_58);
    }
    local_50 = CONCAT44(local_50._4_4_,param_4);
    local_58 = param_3;
    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);
    local_158 = local_160 + 0x18;
    local_168 = local_160 + 0x30;
    local_148 = local_160 + 0x48;
    local_170 = local_160 + 0x60;
    bVar25 = true;
  }
  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
  }
  if ((*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&
     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {
    pcVar3 = *(code **)(*param_2 + 0x10);
    if (pcVar3 != FUN_00173890) {
                    /* try { // try from 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */
      local_135 = (*pcVar3)(param_2,local_78[0]);
      goto LAB_00170f04;
    }
    pcVar3 = *(code **)(*param_2 + 0x98);
    bVar26 = pcVar3 < FUN_00173800;
    bVar28 = pcVar3 == FUN_00173800;
    if (!bVar28) {
      local_135 = (*pcVar3)(param_2,local_78[0]);
      goto LAB_00170f04;
    }
    lVar20 = 0xc;
    pbVar17 = (byte *)".rodata._ZTV";
    pbVar14 = local_78[0];
    do {
      if (lVar20 == 0) break;
      lVar20 = lVar20 + -1;
      bVar26 = *pbVar17 < *pbVar14;
      bVar28 = *pbVar17 == *pbVar14;
      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
    } while (bVar28);
    bVar24 = false;
    bVar26 = (!bVar26 && !bVar28) == bVar26;
    if (!bVar26) {
      lVar20 = 0x11;
      pbVar17 = (byte *)".data.rel.ro._ZTV";
      pbVar14 = local_78[0];
      do {
        if (lVar20 == 0) break;
        lVar20 = lVar20 + -1;
        bVar24 = *pbVar17 < *pbVar14;
        bVar26 = *pbVar17 == *pbVar14;
        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
      } while (bVar26);
      bVar28 = false;
      bVar26 = (!bVar24 && !bVar26) == bVar24;
      if (!bVar26) {
        lVar20 = 0xc;
        pbVar17 = (byte *)".rodata._ZTC";
        pbVar14 = local_78[0];
        do {
          if (lVar20 == 0) break;
          lVar20 = lVar20 + -1;
          bVar28 = *pbVar17 < *pbVar14;
          bVar26 = *pbVar17 == *pbVar14;
          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
        } while (bVar26);
        bVar24 = false;
        bVar26 = (!bVar28 && !bVar26) == bVar28;
        if (!bVar26) {
          lVar20 = 0x11;
          pbVar17 = (byte *)".data.rel.ro._ZTC";
          pbVar14 = local_78[0];
          do {
            if (lVar20 == 0) break;
            lVar20 = lVar20 + -1;
            bVar24 = *pbVar17 < *pbVar14;
            bVar26 = *pbVar17 == *pbVar14;
            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
          } while (bVar26);
          bVar28 = false;
          bVar26 = (!bVar24 && !bVar26) == bVar24;
          if (!bVar26) {
            lVar20 = 9;
            pbVar17 = (byte *)".eh_frame";
            pbVar14 = local_78[0];
            do {
              if (lVar20 == 0) break;
              lVar20 = lVar20 + -1;
              bVar28 = *pbVar17 < *pbVar14;
              bVar26 = *pbVar17 == *pbVar14;
              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
            } while (bVar26);
            local_135 = (!bVar28 && !bVar26) != bVar28;
            goto LAB_00170f04;
          }
        }
      }
    }
  }
  local_135 = '\0';
LAB_00170f04:
  if (param_6 != 0) {
    local_140 = (byte *)0x0;
    local_100 = 0;
    do {
      uVar6 = param_5[1];
      uVar4 = uVar6 >> 0x18;
      uVar7 = param_5[2];
      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;
      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;
      if (uVar21 < param_7) {
        if (param_8 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");
        }
        lVar20 = (ulong)(uVar21 << 4) + param_8;
        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;
        uVar7 = (uint)uVar15;
        if (uVar15 < 0xff00) {
LAB_001710c0:
          uVar21 = *(uint *)(lVar20 + 4);
          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |
                   uVar21 << 0x18;
          local_12c = uVar6 + uVar21;
          if (bVar25) {
            local_50 = CONCAT44(local_50._4_4_,uVar7);
            local_58 = param_3;
            FUN_00177b00(local_160,&local_58);
            bVar26 = true;
            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;
LAB_00170fb2:
            local_58 = (byte *)0x0;
            FUN_00177c80(local_158,&local_58);
            goto LAB_00170fcd;
          }
        }
        else {
          if (uVar15 == 0xffff) {
            lVar11 = *(long *)(param_3 + 0x40);
            if (lVar11 == 0) {
              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);
              *(long *)(param_3 + 0x40) = lVar11;
            }
            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);
            goto LAB_001710c0;
          }
          uVar21 = *(uint *)(lVar20 + 4);
          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |
                   uVar21 << 0x18;
          local_12c = uVar6 + uVar21;
          if (!bVar25) goto LAB_00171042;
          local_58 = (byte *)0x0;
          local_50 = local_50 & 0xffffffff00000000;
                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */
          FUN_00177b00(local_160,&local_58);
          bVar26 = false;
          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;
LAB_00171112:
          local_58 = (byte *)0xffffffffffffffff;
          FUN_00177c80(local_158,&local_58);
LAB_00170fcd:
          local_58 = (byte *)(ulong)uVar21;
          local_50 = (ulong)(int)uVar6;
          FUN_00177e20(local_168,&local_58);
          uVar6 = *param_5;
          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8
                                    | uVar6 << 0x18);
          puVar1 = *(undefined8 **)(local_148 + 8);
          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {
            FUN_00177450(local_148,puVar1,&local_58);
          }
          else {
            *puVar1 = local_58;
            *(undefined8 **)(local_148 + 8) = puVar1 + 1;
          }
          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);
          FUN_00177fb0(local_170,&local_88);
          if (!bVar26) goto LAB_00171042;
        }
        local_118 = param_3;
        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {
LAB_001711d0:
          if (param_4 != uVar7) goto LAB_001711e3;
        }
        else {
          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);
          if (lVar11 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
          }
          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||
             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {
            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |
                                     *(ushort *)(lVar20 + 0xe) >> 8);
            local_e8 = *(long *)(param_1 + 0x298) + 0x68;
            local_a8 = param_3;
            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);
            goto LAB_001711d0;
          }
          if (param_4 == uVar7) goto LAB_00171042;
LAB_001711f7:
          if (*(char *)(lVar11 + 0x2809) != '\0') {
            lVar11 = *(long *)(param_1 + 0x290);
            lVar20 = lVar11 + 0x28;
            local_88 = local_118;
            lVar12 = lVar20;
            lVar10 = *(long *)(lVar11 + 0x30);
            local_98 = param_3;
            local_90 = param_4;
            local_80 = uVar7;
            if (*(long *)(lVar11 + 0x30) == 0) {
LAB_00171288:
              local_c8 = &local_98;
              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);
            }
            else {
              do {
                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||
                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))
                       ))) {
                  plVar2 = (long *)(lVar8 + 0x18);
                  lVar8 = lVar12;
                  lVar10 = *plVar2;
                  if (*plVar2 == 0) goto LAB_0017126a;
                }
                lVar12 = lVar8;
                lVar10 = *(long *)(lVar8 + 0x10);
              } while (*(long *)(lVar8 + 0x10) != 0);
LAB_0017126a:
              bVar26 = lVar8 == lVar20;
              lVar20 = lVar8;
              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||
                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))
              goto LAB_00171288;
            }
            local_d0 = lVar8 + 0x30;
            FUN_00174c60(local_d0,&local_88,&local_d0,1);
            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);
            if (plVar2 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");
            }
            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {
              (**(code **)(*plVar2 + 0x208))
                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);
            }
            if (local_140 != (byte *)0x0) {
              lVar20 = *(long *)(param_1 + 0x290);
              local_58 = local_48;
              sVar9 = strlen((char *)local_140);
              FUN_00174550(&local_58,local_140,local_140 + sVar9);
              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);
              if (local_58 != local_48) {
                FUN_002f1e60();
              }
              lVar11 = *(long *)(param_1 + 0x290);
              if (lVar20 != lVar11 + 0x90) {
                lVar12 = lVar11 + 0x28;
                local_50 = CONCAT44(local_50._4_4_,param_4);
                lVar10 = lVar12;
                lVar8 = *(long *)(lVar11 + 0x30);
                if (*(long *)(lVar11 + 0x30) == 0) {
LAB_001717c0:
                  local_c0 = &local_58;
                  local_58 = param_3;
                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);
                }
                else {
                  do {
                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||
                           ((param_3 == *(byte **)(lVar13 + 0x20) &&
                            (*(uint *)(lVar13 + 0x28) < param_4))))) {
                      plVar2 = (long *)(lVar13 + 0x18);
                      lVar13 = lVar10;
                      lVar8 = *plVar2;
                      if (*plVar2 == 0) goto LAB_001713d2;
                    }
                    lVar10 = lVar13;
                    lVar8 = *(long *)(lVar13 + 0x10);
                  } while (*(long *)(lVar13 + 0x10) != 0);
LAB_001713d2:
                  bVar26 = lVar12 == lVar13;
                  lVar12 = lVar13;
                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||
                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&
                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;
                }
                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;
                    puVar1 = (undefined8 *)*puVar1) {
                  local_d8 = lVar13 + 0x30;
                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar21 < *(uint *)(param_3 + 0x120)) {
          local_88 = (byte *)0x0;
LAB_001716a8:
                    /* WARNING: Subroutine does not return */
          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");
        }
        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));
        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {
                    /* WARNING: Subroutine does not return */
          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");
        }
        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);
        if (local_88 == (byte *)0x0) goto LAB_001716a8;
        if ((local_88[0x3a] & 0x10) != 0) {
          local_88 = (byte *)FUN_00284df0(param_1,local_88);
        }
        if ((local_88[0x3a] & 7) == 0) {
          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);
          local_118 = *(byte **)(local_88 + 0x10);
          local_12c = uVar6 + *(uint *)(local_88 + 0x40);
          if ((local_118[0x3c] & 1) == 0) {
            uVar7 = *(uint *)(local_88 + 0x18);
            bVar19 = local_88[0x3b] >> 5 & 1;
            uVar23 = (local_88[0x38] & 0xf) < 2;
            uVar27 = (local_88[0x38] & 0xf) == 2;
            if ((bool)uVar27) {
              uVar23 = 0;
              uVar27 = local_135 == '\0';
              if (!(bool)uVar27) {
                uVar23 = false;
                uVar27 = bVar19 == 0;
                if (!(bool)uVar27) {
                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
                  }
                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {
                    uVar23 = false;
                    uVar27 = (local_88[0x39] & 3) == 0;
                    if (!(bool)uVar27) goto LAB_00171878;
                  }
                  uVar23 = uVar4 < 0x3a;
                  uVar27 = uVar4 == 0x3a;
                  if ((0x3a < uVar4) ||
                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23
                     )) goto LAB_001714f0;
                }
LAB_00171878:
                local_e0 = *(long *)(param_1 + 0x298) + 0x68;
                local_b8 = local_118;
                local_b0 = uVar7;
                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);
              }
            }
          }
          else {
            local_118 = (byte *)0x0;
            bVar19 = 0;
            uVar23 = 0;
            uVar7 = 0;
            uVar27 = 1;
          }
        }
        else {
          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);
          bVar19 = 0;
          local_118 = (byte *)0x0;
          local_12c = uVar6 + *(uint *)(local_88 + 0x40);
          uVar23 = 0;
          uVar7 = 0;
          uVar27 = 1;
        }
LAB_001714f0:
        pbVar14 = *(byte **)local_88;
        lVar20 = 8;
        pbVar16 = (byte *)"__start_";
        pbVar18 = pbVar14;
        do {
          if (lVar20 == 0) break;
          lVar20 = lVar20 + -1;
          uVar23 = *pbVar16 < *pbVar18;
          uVar27 = *pbVar16 == *pbVar18;
          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;
          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;
        } while ((bool)uVar27);
        bVar26 = false;
        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;
        if (bVar28) {
          pbVar14 = pbVar14 + 8;
        }
        else {
          lVar20 = 7;
          pbVar16 = (byte *)"__stop_";
          pbVar18 = pbVar14;
          do {
            if (lVar20 == 0) break;
            lVar20 = lVar20 + -1;
            bVar26 = *pbVar16 < *pbVar18;
            bVar28 = *pbVar16 == *pbVar18;
            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;
            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;
          } while (bVar28);
          pbVar14 = pbVar14 + 7;
          if ((!bVar26 && !bVar28) != bVar26) {
            pbVar14 = local_140;
          }
        }
        local_140 = pbVar14;
        if (bVar25) {
          if (bVar19 == 0) {
            local_58 = (byte *)0x0;
            local_50 = (ulong)local_50._4_4_ << 0x20;
            FUN_00177b00(local_160,&local_58);
          }
          else {
            local_50 = CONCAT44(local_50._4_4_,uVar7);
            local_58 = local_118;
            FUN_00177b00(local_160,&local_58);
          }
          puVar1 = *(undefined8 **)(local_158 + 8);
          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {
            FUN_00174210(local_158,puVar1,&local_88);
          }
          else {
            *puVar1 = local_88;
            *(undefined8 **)(local_158 + 8) = puVar1 + 1;
          }
          local_50 = (ulong)(int)uVar6;
          local_58 = pbVar17;
          FUN_00177e20(local_168,&local_58);
          uVar6 = *param_5;
          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8
                                    | uVar6 << 0x18);
          puVar1 = *(undefined8 **)(local_148 + 8);
          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {
            FUN_00177450(local_148,puVar1,&local_58);
          }
          else {
            *puVar1 = local_58;
            *(undefined8 **)(local_148 + 8) = puVar1 + 1;
          }
          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);
          FUN_00177fb0(local_170,&local_98);
        }
        if (bVar19 != 0) {
LAB_001711e3:
          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);
          if (lVar11 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
          }
          goto LAB_001711f7;
        }
      }
LAB_00171042:
      local_100 = local_100 + 1;
      param_5 = param_5 + 3;
    } while (param_6 != local_100);
  }
  if (local_78[0] != local_68) {
    FUN_002f1e60();
  }
  return;
}


PUSH RBP
MOV RBP,RSP
PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBX
SUB RSP,0x158
MOV RAX,qword ptr [0x0045c708]
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 0x00171c07
MOV R14,RSI
MOV ESI,dword ptr [RAX + 0x9050]
MOV R15,RDX
MOV R13,R8
TEST ESI,ESI
JZ 0x00171af6
LEA RAX,[RBP + -0x70]
MOV RSI,R15
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 [0x0045c708]
MOV RDX,qword ptr [RAX + 0x10]
TEST RDX,RDX
JZ 0x00171ba7
MOV ECX,dword ptr [RDX + 0x9050]
TEST ECX,ECX
JNZ 0x001719e8
MOV byte ptr [RBP + -0x125],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 0x00171bbf
CMP dword ptr [RAX + 0x9050],0x2
JZ 0x001718fc
MOV byte ptr [RBP + -0x12d],0x0
CMP qword ptr [RBP + -0x120],0x0
JZ 0x00171828
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 0x00171062
CMP EBX,0xffff
JZ 0x00171660
MOV R14D,dword ptr [R12 + 0x4]
MOV EAX,dword ptr [RBP + -0x100]
BSWAP R14D
ADD EAX,R14D
CMP byte ptr [RBP + -0x125],0x0
MOV dword ptr [RBP + -0x124],EAX
JZ 0x00171042
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 0x00177b00
MOVZX EAX,byte ptr [R12 + 0xc]
MOV byte ptr [RBP + -0x110],0x0
AND EAX,0xf
CMP AL,0x3
JZ 0x00171112
MOV RSI,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x150]
MOV qword ptr [RBP + -0x50],0x0
CALL 0x00177c80
MOV EAX,R14D
MOV RSI,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x160]
MOV qword ptr [RBP + -0x50],RAX
MOVSXD RAX,dword ptr [RBP + -0x100]
MOV qword ptr [RBP + -0x48],RAX
CALL 0x00177e20
MOV EAX,dword ptr [R13]
MOV RCX,qword ptr [RBP + -0x140]
BSWAP EAX
MOV EAX,EAX
MOV RSI,qword ptr [RCX + 0x8]
MOV qword ptr [RBP + -0x50],RAX
CMP RSI,qword ptr [RCX + 0x10]
JZ 0x00171700
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 0x00177fb0
CMP byte ptr [RBP + -0x110],0x0
JNZ 0x00171138
ADD qword ptr [RBP + -0xf8],0x1
ADD R13,0xc
MOV RAX,qword ptr [RBP + -0xf8]
CMP qword ptr [RBP + -0x120],RAX
JZ 0x00171828
MOV EAX,dword ptr [R13 + 0x4]
BSWAP EAX
MOV R14D,EAX
MOVZX EAX,AL
MOV dword ptr [RBP + -0x118],EAX
MOV EAX,dword ptr [R13 + 0x8]
SHR R14D,0x8
BSWAP EAX
MOV dword ptr [RBP + -0x100],EAX
MOV EAX,R14D
CMP RAX,qword ptr [RBP + 0x10]
JNC 0x00171440
CMP qword ptr [RBP + 0x18],0x0
JZ 0x00171b3a
MOV R12D,R14D
SHL R12D,0x4
ADD R12,qword ptr [RBP + 0x18]
MOVZX EBX,word ptr [R12 + 0xe]
ROL BX,0x8
MOVZX EBX,BX
CMP EBX,0xfeff
JA 0x00170f48
MOV R14D,dword ptr [R12 + 0x4]
MOV EAX,dword ptr [RBP + -0x100]
BSWAP R14D
ADD EAX,R14D
CMP byte ptr [RBP + -0x125],0x0
MOV dword ptr [RBP + -0x124],EAX
JZ 0x00171138
MOV RSI,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x158]
MOV qword ptr [RBP + -0x50],R15
MOV dword ptr [RBP + -0x48],EBX
CALL 0x00177b00
MOVZX EAX,byte ptr [R12 + 0xc]
MOV byte ptr [RBP + -0x110],0x1
AND EAX,0xf
CMP AL,0x3
JNZ 0x00170fb2
MOV RSI,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x150]
MOV qword ptr [RBP + -0x50],-0x1
CALL 0x00177c80
JMP 0x00170fcd
CMP byte ptr [RBP + -0x12d],0x0
JZ 0x001711d0
MOVZX EAX,byte ptr [R12 + 0xc]
AND EAX,0xf
CMP AL,0x1
JZ 0x001711d0
MOV RAX,qword ptr [0x0045c708]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x00171bd7
CMP byte ptr [RAX + 0x2a61],0x0
JZ 0x00171720
MOV RAX,qword ptr [RBP + -0x148]
LEA RDX,[RBP + -0xe0]
LEA RSI,[RBP + -0xa0]
MOV ECX,0x1
MOV qword ptr [RBP + -0xa0],R15
MOV RAX,qword ptr [RAX + 0x298]
MOV qword ptr [RBP + -0x100],RAX
MOVZX EAX,word ptr [R12 + 0xe]
ROL AX,0x8
MOVZX EAX,AX
MOV dword ptr [RBP + -0x98],EAX
MOV RAX,qword ptr [RBP + -0x100]
LEA RDI,[RAX + 0x68]
MOV qword ptr [RBP + -0xe0],RDI
CALL 0x00174bc0
NOP dword ptr [RAX]
CMP dword ptr [RBP + -0x12c],EBX
JZ 0x00171042
MOV qword ptr [RBP + -0x110],R15
MOV RAX,qword ptr [0x0045c708]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x00171b5f
CMP byte ptr [RAX + 0x2809],0x0
JZ 0x00171042
MOV RAX,qword ptr [RBP + -0x148]
MOV ESI,dword ptr [RBP + -0x12c]
MOV qword ptr [RBP + -0x90],R15
MOV dword ptr [RBP + -0x78],EBX
MOV RDI,qword ptr [RAX + 0x290]
MOV RAX,qword ptr [RBP + -0x110]
MOV dword ptr [RBP + -0x88],ESI
MOV RDX,qword ptr [RDI + 0x30]
LEA RCX,[RDI + 0x28]
MOV qword ptr [RBP + -0x80],RAX
MOV RAX,RCX
TEST RDX,RDX
JNZ 0x0017125b
JMP 0x00171288
JNZ 0x0017124f
CMP ESI,dword ptr [RDX + 0x28]
JA 0x00171261
MOV RAX,RDX
MOV RDX,qword ptr [RDX + 0x10]
TEST RDX,RDX
JZ 0x0017126a
CMP R15,qword ptr [RDX + 0x20]
JBE 0x00171248
MOV RDX,qword ptr [RDX + 0x18]
TEST RDX,RDX
JNZ 0x0017125b
CMP RAX,RCX
JZ 0x00171288
CMP R15,qword ptr [RAX + 0x20]
JC 0x00171288
JNZ 0x001712b7
MOV ECX,dword ptr [RBP + -0x12c]
CMP ECX,dword ptr [RAX + 0x28]
JNC 0x001712b7
NOP word 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,[0x38b644]
CALL 0x00174880
LEA RDI,[RAX + 0x30]
LEA RSI,[RBP + -0x80]
MOV ECX,0x1
LEA RDX,[RBP + -0xc8]
MOV qword ptr [RBP + -0xc8],RDI
CALL 0x00174c60
MOV RAX,qword ptr [0x0045c708]
MOV RDI,qword ptr [RAX + 0x18]
TEST RDI,RDI
JZ 0x00171b77
MOV RAX,qword ptr [RDI]
LEA RCX,[0x172d60]
MOV RAX,qword ptr [RAX + 0x208]
CMP RAX,RCX
JNZ 0x00171760
MOV R14,qword ptr [RBP + -0x138]
TEST R14,R14
JZ 0x00171042
MOV R12,qword ptr [RBP + -0x170]
MOV RDI,R14
MOV RBX,qword ptr [RBP + -0x148]
MOV qword ptr [RBP + -0x50],R12
MOV RBX,qword ptr [RBX + 0x290]
CALL 0x00149490
MOV RSI,R14
LEA RDX,[R14 + RAX*0x1]
MOV R14,qword ptr [RBP + -0x108]
MOV RDI,R14
CALL 0x00174550
LEA RDI,[RBX + 0x88]
MOV RSI,R14
CALL 0x001775a0
MOV RDI,qword ptr [RBP + -0x50]
MOV RBX,RAX
CMP RDI,R12
JZ 0x0017136c
CALL 0x002f1e60
MOV RAX,qword ptr [RBP + -0x148]
MOV RDI,qword ptr [RAX + 0x290]
LEA RAX,[RDI + 0x90]
CMP RBX,RAX
JZ 0x00171042
MOV ESI,dword ptr [RBP + -0x12c]
MOV RDX,qword ptr [RDI + 0x30]
LEA RCX,[RDI + 0x28]
MOV qword ptr [RBP + -0x50],R15
MOV RAX,RCX
MOV dword ptr [RBP + -0x48],ESI
TEST RDX,RDX
JNZ 0x001713c3
JMP 0x001717c0
JNZ 0x001713b7
CMP ESI,dword ptr [RDX + 0x28]
JA 0x001713c9
MOV RAX,RDX
MOV RDX,qword ptr [RDX + 0x10]
TEST RDX,RDX
JZ 0x001713d2
CMP R15,qword ptr [RDX + 0x20]
JBE 0x001713b0
MOV RDX,qword ptr [RDX + 0x18]
TEST RDX,RDX
JNZ 0x001713c3
CMP RCX,RAX
JZ 0x001717c0
CMP R15,qword ptr [RAX + 0x20]
JC 0x001717c0
JZ 0x001717a8
MOV RBX,qword ptr [RBX + 0x50]
ADD RAX,0x30
LEA R12,[RBP + -0xd0]
MOV R14,RAX
TEST RBX,RBX
JZ 0x00171042
NOP word ptr CS:[RAX + RAX*0x1]
MOV RDI,R14
LEA RSI,[RBX + 0x8]
MOV ECX,0x1
MOV RDX,R12
MOV qword ptr [RBP + -0xd0],R14
CALL 0x00174c60
MOV RBX,qword ptr [RBX]
TEST RBX,RBX
JNZ 0x00171410
JMP 0x00171042
MOV EAX,dword ptr [R15 + 0x120]
CMP R14D,EAX
JC 0x001716a0
SUB R14D,EAX
MOV RDX,qword ptr [R15 + 0x130]
MOV RAX,qword ptr [R15 + 0x138]
SUB RAX,RDX
SAR RAX,0x3
CMP R14,RAX
JNC 0x00171b8f
MOV RAX,qword ptr [RDX + R14*0x8]
MOV qword ptr [RBP + -0x80],RAX
TEST RAX,RAX
JZ 0x001716a8
TEST byte ptr [RAX + 0x3a],0x10
JNZ 0x00171680
TEST byte ptr [RAX + 0x3a],0x7
JNZ 0x00171638
MOV R14D,dword ptr [RAX + 0x40]
MOV EDX,dword ptr [RBP + -0x100]
MOV RBX,qword ptr [RAX + 0x10]
LEA ECX,[RDX + R14*0x1]
MOV qword ptr [RBP + -0x110],RBX
MOV dword ptr [RBP + -0x124],ECX
TEST byte ptr [RBX + 0x3c],0x1
JNZ 0x001716c0
MOVZX R12D,byte ptr [RAX + 0x3b]
MOVZX EDX,byte ptr [RAX + 0x38]
MOV EBX,dword ptr [RAX + 0x18]
SHR R12B,0x5
AND EDX,0xf
AND R12D,0x1
CMP DL,0x2
JNZ 0x001714f0
CMP byte ptr [RBP + -0x12d],0x0
JNZ 0x00171850
NOP dword ptr [RAX + RAX*0x1]
MOV RAX,qword ptr [RAX]
MOV ECX,0x8
LEA RSI,[0x3875ee]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x00171600
ADD RAX,0x8
MOV qword ptr [RBP + -0x138],RAX
CMP byte ptr [RBP + -0x125],0x0
JZ 0x001715e8
TEST R12B,R12B
JNZ 0x001716d8
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 0x00177b00
MOV RCX,qword ptr [RBP + -0x150]
MOV RSI,qword ptr [RCX + 0x8]
CMP RSI,qword ptr [RCX + 0x10]
JZ 0x00171810
MOV RAX,qword ptr [RBP + -0x80]
ADD RSI,0x8
MOV qword ptr [RSI + -0x8],RAX
MOV qword ptr [RCX + 0x8],RSI
MOV EAX,R14D
MOV RSI,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x160]
MOV qword ptr [RBP + -0x50],RAX
MOVSXD RAX,dword ptr [RBP + -0x100]
MOV qword ptr [RBP + -0x48],RAX
CALL 0x00177e20
MOV EAX,dword ptr [R13]
MOV RDI,qword ptr [RBP + -0x140]
BSWAP EAX
MOV EAX,EAX
MOV RSI,qword ptr [RDI + 0x8]
MOV qword ptr [RBP + -0x50],RAX
CMP RSI,qword ptr [RDI + 0x10]
JZ 0x001717f8
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 0x00177fb0
TEST R12B,R12B
JNZ 0x001711e3
JMP 0x00171042
MOV RDI,RAX
MOV ECX,0x7
LEA RSI,[0x3875f7]
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
ADD RAX,0x7
TEST DL,DL
CMOVNZ RAX,qword ptr [RBP + -0x138]
MOV qword ptr [RBP + -0x138],RAX
JMP 0x0017151d
MOV R14D,dword ptr [RAX + 0x40]
XOR R12D,R12D
MOV EBX,dword ptr [RBP + -0x100]
MOV qword ptr [RBP + -0x110],0x0
ADD EBX,R14D
MOV dword ptr [RBP + -0x124],EBX
XOR EBX,EBX
JMP 0x001714f0
MOV RDI,qword ptr [R15 + 0x40]
TEST RDI,RDI
JZ 0x00171790
MOV EDX,R14D
MOV RSI,R15
CALL 0x001d1ac0
MOV EBX,EAX
JMP 0x001710c0
MOV RDI,qword ptr [RBP + -0x148]
MOV RSI,RAX
CALL 0x00284df0
MOV qword ptr [RBP + -0x80],RAX
JMP 0x0017148c
MOV qword ptr [RBP + -0x80],0x0
LEA RDX,[0x38a4c0]
MOV ESI,0x11c
LEA RDI,[0x3875de]
CALL 0x0018ff20
MOV qword ptr [RBP + -0x110],0x0
XOR R12D,R12D
XOR EBX,EBX
JMP 0x001714f0
MOV RAX,qword ptr [RBP + -0x110]
MOV RSI,qword ptr [RBP + -0x108]
MOV dword ptr [RBP + -0x48],EBX
MOV RDI,qword ptr [RBP + -0x158]
MOV qword ptr [RBP + -0x50],RAX
CALL 0x00177b00
JMP 0x00171555
MOV RDX,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x140]
CALL 0x00177450
JMP 0x0017101e
MOV EDI,dword ptr [RBP + -0x118]
CMP EDI,0x3a
JA 0x0017173f
MOV RDX,0x40000001d48a0d0
BT RDX,RDI
JC 0x00171173
CMP dword ptr [RBP + -0x12c],EBX
JZ 0x00171042
MOV qword ptr [RBP + -0x110],R15
JMP 0x001711f7
MOV ECX,dword ptr [RBP + -0x124]
SUB RSP,0x8
MOV R9D,EBX
MOV RDX,R15
MOV R8,qword ptr [RBP + -0x110]
MOV RSI,qword ptr [RBP + -0x148]
PUSH RCX
MOV ECX,dword ptr [RBP + -0x12c]
CALL RAX
POP RAX
POP RDX
JMP 0x00171305
MOV RAX,qword ptr [R15]
MOV RDI,R15
CALL qword ptr [RAX + 0xd8]
MOV RDI,RAX
MOV qword ptr [R15 + 0x40],RAX
JMP 0x0017166d
MOV EDX,dword ptr [RBP + -0x12c]
CMP EDX,dword ptr [RAX + 0x28]
JNC 0x001713eb
NOP word ptr [RAX + RAX*0x1]
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,[0x38b644]
CALL 0x00174880
JMP 0x001713eb
MOV RDX,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x140]
CALL 0x00177450
JMP 0x001715cb
MOV RDI,qword ptr [RBP + -0x150]
LEA RDX,[RBP + -0x80]
CALL 0x00174210
JMP 0x0017157a
MOV RAX,qword ptr [RBP + -0x178]
MOV RDI,qword ptr [RBP + -0x70]
ADD RAX,0x10
CMP RDI,RAX
JZ 0x00171841
CALL 0x002f1e60
LEA RSP,[RBP + -0x28]
POP RBX
POP R12
POP R13
POP R14
POP R15
POP RBP
RET
TEST R12B,R12B
JZ 0x00171878
MOV RDX,qword ptr [0x0045c708]
MOV RDX,qword ptr [RDX + 0x10]
TEST RDX,RDX
JZ 0x00171bef
CMP byte ptr [RDX + 0x2a61],0x0
JZ 0x001718d4
TEST byte ptr [RAX + 0x39],0x3
JZ 0x001718d4
MOV RAX,qword ptr [RBP + -0x148]
MOV ECX,0x1
LEA RDX,[RBP + -0xd8]
LEA RSI,[RBP + -0xb0]
MOV dword ptr [RBP + -0xa8],EBX
MOV RAX,qword ptr [RAX + 0x298]
MOV qword ptr [RBP + -0x118],RAX
MOV RAX,qword ptr [RBP + -0x110]
MOV qword ptr [RBP + -0xb0],RAX
MOV RAX,qword ptr [RBP + -0x118]
LEA RDI,[RAX + 0x68]
MOV qword ptr [RBP + -0xd8],RDI
CALL 0x00174bc0
MOV RAX,qword ptr [RBP + -0x80]
JMP 0x001714f0
MOV ECX,dword ptr [RBP + -0x118]
CMP ECX,0x3a
JA 0x001714f0
MOV RDX,0x40000001d48a0d0
BT RDX,RCX
JNC 0x001714f0
JMP 0x00171878
MOV RAX,qword ptr [R14]
MOV RDI,R14
CALL qword ptr [RAX + 0x90]
TEST AL,AL
JZ 0x00170efd
MOV RDX,qword ptr [R14]
LEA RSI,[0x173890]
MOV RAX,qword ptr [RBP + -0x70]
MOV RCX,qword ptr [RDX + 0x10]
CMP RCX,RSI
JNZ 0x00171b1d
MOV RDX,qword ptr [RDX + 0x98]
LEA RCX,[0x173800]
CMP RDX,RCX
JNZ 0x00171b30
MOV ECX,0xc
LEA RSI,[0x38b645]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00170efd
MOV ECX,0x11
LEA RSI,[0x38b652]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00170efd
MOV ECX,0xc
LEA RSI,[0x38b664]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00170efd
MOV ECX,0x11
LEA RSI,[0x38b671]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00170efd
MOV RDI,RAX
MOV ECX,0x9
LEA RSI,[0x38b683]
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
SETNZ byte ptr [RBP + -0x12d]
JMP 0x00170f04
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 0x00171a10
MOV RDI,R12
CALL 0x00149490
LEA RDX,[R12 + RAX*0x1]
MOV RSI,R12
MOV RDI,RBX
CALL 0x00174550
MOV RAX,qword ptr [RBP + -0x50]
MOV ECX,0x5
LEA RSI,[0x3875c8]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00171a72
MOV ECX,0xf
LEA RSI,[0x3875ce]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00171a72
ADD RBX,0x10
CMP RAX,RBX
JZ 0x00171a66
MOV RDI,RAX
CALL 0x002f1e60
MOV RAX,qword ptr [0x0045c708]
JMP 0x00170ea5
LEA RDX,[RBX + 0x10]
CMP RAX,RDX
JNZ 0x00171b52
MOV EAX,dword ptr [RBP + -0x12c]
MOV RSI,RBX
MOV qword ptr [RBP + -0x50],R15
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 0x00179620
LEA RBX,[RAX + 0x18]
MOV qword ptr [RBP + -0x158],RAX
MOV qword ptr [RBP + -0x150],RBX
LEA RBX,[RAX + 0x30]
MOV qword ptr [RBP + -0x160],RBX
LEA RBX,[RAX + 0x48]
ADD RAX,0x60
MOV qword ptr [RBP + -0x168],RAX
MOV RAX,qword ptr [0x0045c708]
MOV qword ptr [RBP + -0x140],RBX
MOV byte ptr [RBP + -0x125],0x1
JMP 0x00170ee3
LEA RDI,[RBP + -0x70]
LEA RDX,[0x3a5556]
LEA RAX,[RDI + 0x10]
MOV RSI,RDX
MOV qword ptr [RBP + -0x178],RDI
MOV qword ptr [RBP + -0x70],RAX
CALL 0x00174550
JMP 0x00170e83
MOV RSI,RAX
MOV RDI,R14
CALL RCX
MOV byte ptr [RBP + -0x12d],AL
JMP 0x00170f04
MOV RSI,RAX
MOV RDI,R14
CALL RDX
JMP 0x00171b25
LEA RDX,[0x38a4c0]
MOV ESI,0xea
LEA RDI,[0x3875de]
CALL 0x0018ff20
MOV RDI,RAX
CALL 0x002f1e60
JMP 0x00171a7f
LEA RDX,[0x38b210]
MOV ESI,0x5c
LEA RDI,[0x382279]
CALL 0x0018ff20
LEA RDX,[0x38a6f8]
MOV ESI,0x73
LEA RDI,[0x382279]
CALL 0x0018ff20
LEA RDX,[0x38a698]
MOV ESI,0x8ad
LEA RDI,[0x3873ac]
CALL 0x0018ff20
LEA RDX,[0x38b210]
MOV ESI,0x5c
LEA RDI,[0x382279]
CALL 0x0018ff20
LEA RDX,[0x38b210]
MOV ESI,0x5c
LEA RDI,[0x382279]
CALL 0x0018ff20
LEA RDX,[0x38b210]
MOV ESI,0x5c
LEA RDI,[0x382279]
CALL 0x0018ff20
LEA RDX,[0x38b210]
MOV ESI,0x5c
LEA RDI,[0x382279]
CALL 0x0018ff20
LEA RDX,[0x38b210]
MOV ESI,0x5c
LEA RDI,[0x382279]
CALL 0x0018ff20
(translation_unit "void FUN_00170e10(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)\n\n{\n  undefined8 *puVar1;\n  long *plVar2;\n  code *pcVar3;\n  uint uVar4;\n  char cVar5;\n  uint uVar6;\n  uint uVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  byte *pbVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte bVar19;\n  long lVar20;\n  uint uVar21;\n  ulong uVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  undefined1 uVar27;\n  bool bVar28;\n  byte bVar29;\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  int local_12c;\n  byte *local_118;\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  bVar29 = 0;\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_00174550(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_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\nLAB_00170ea5:\n    bVar25 = 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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    /* try { // try from 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00170f04:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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_002f1e60();\n  }\n  return;\n}\n\n" (function_definition "void FUN_00170e10(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)\n\n{\n  undefined8 *puVar1;\n  long *plVar2;\n  code *pcVar3;\n  uint uVar4;\n  char cVar5;\n  uint uVar6;\n  uint uVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  byte *pbVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte bVar19;\n  long lVar20;\n  uint uVar21;\n  ulong uVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  undefined1 uVar27;\n  bool bVar28;\n  byte bVar29;\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  int local_12c;\n  byte *local_118;\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  bVar29 = 0;\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_00174550(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_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\nLAB_00170ea5:\n    bVar25 = 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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    /* try { // try from 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00170f04:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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_002f1e60();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00170e10(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)" identifier (parameter_list "(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_7" type_identifier identifier) , (parameter_declaration "long param_8" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined8 *puVar1;\n  long *plVar2;\n  code *pcVar3;\n  uint uVar4;\n  char cVar5;\n  uint uVar6;\n  uint uVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  byte *pbVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte bVar19;\n  long lVar20;\n  uint uVar21;\n  ulong uVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  undefined1 uVar27;\n  bool bVar28;\n  byte bVar29;\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  int local_12c;\n  byte *local_118;\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  bVar29 = 0;\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_00174550(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_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\nLAB_00170ea5:\n    bVar25 = 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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    /* try { // try from 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00170f04:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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_002f1e60();\n  }\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "ushort uVar15;" type_identifier 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 "byte bVar19;" type_identifier identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "ulong uVar22;" type_identifier identifier ;) (declaration "undefined1 uVar23;" type_identifier identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "undefined1 uVar27;" type_identifier identifier ;) (declaration "bool bVar28;" primitive_type identifier ;) (declaration "byte bVar29;" 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 "int local_12c;" primitive_type identifier ;) (declaration "byte *local_118;" type_identifier (pointer_declarator "*local_118" * 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 "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (if_statement "if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" { comment (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../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_0045c708 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_00174550(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_0045c708 + 0x10) + 0x9050) == 0)" ( (binary_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" * (cast_expression "(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_78[0] = local_68;\n    FUN_00174550(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_00174550(local_78,"");" (call_expression "FUN_00174550(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_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" { comment (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../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_0045c708 + 0x10) + 0x9050) == 0) {\nLAB_00170ea5:\n    bVar25 = 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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }" if (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0)" ( (binary_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" * (cast_expression "(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00170ea5:\n    bVar25 = 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_00170ea5:\n    bVar25 = false;" statement_identifier : (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = 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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }" else (compound_statement "{\n    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }" { (expression_statement "pbVar14 = (byte *)0xffffffffffffffff;" (assignment_expression "pbVar14 = (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 "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar27 = local_78[0] == (byte *)0x0;" (assignment_expression "uVar27 = 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)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }" if (parenthesized_expression "(!(bool)uVar27)" ( (unary_expression "!(bool)uVar27" ! (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }" { (expression_statement "sVar9 = strlen((char *)local_78[0]);" (assignment_expression "sVar9 = 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 "pbVar14 = pbVar17 + sVar9;" (assignment_expression "pbVar14 = pbVar17 + sVar9" identifier = (binary_expression "pbVar17 + sVar9" identifier + identifier)) ;) })) (expression_statement "FUN_00174550(&local_58,pbVar17,pbVar14);" (call_expression "FUN_00174550(&local_58,pbVar17,pbVar14)" identifier (argument_list "(&local_58,pbVar17,pbVar14)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "lVar20 = 5;" (assignment_expression "lVar20 = 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 "pbVar14 = local_58;" (assignment_expression "pbVar14 = local_58" identifier = identifier) ;) (do_statement "do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);" do (compound_statement "{\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "uVar23 = *pbVar17 < *pbVar14;" (assignment_expression "uVar23 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "uVar27 = *pbVar17 == *pbVar14;" (assignment_expression "uVar27 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar27)" ( (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;" (assignment_expression "bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23" identifier = (binary_expression "(!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23" (parenthesized_expression "(!(bool)uVar23 && !(bool)uVar27)" ( (binary_expression "!(bool)uVar23 && !(bool)uVar27" (unary_expression "!(bool)uVar23" ! (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar27" ! (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }" { (expression_statement "lVar20 = 0xf;" (assignment_expression "lVar20 = 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 "pbVar14 = local_58;" (assignment_expression "pbVar14 = local_58" identifier = identifier) ;) (do_statement "do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);" do (compound_statement "{\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar14;" (assignment_expression "bVar25 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }" if (parenthesized_expression "((!bVar25 && !bVar26) != bVar25)" ( (binary_expression "(!bVar25 && !bVar26) != bVar25" (parenthesized_expression "(!bVar25 && !bVar26)" ( (binary_expression "!bVar25 && !bVar26" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }" { (if_statement "if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n          FUN_002f1e60(local_58);\n        }" { (expression_statement "FUN_002f1e60(local_58);" (call_expression "FUN_002f1e60(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) })) (goto_statement "goto LAB_00170ea5;" goto statement_identifier ;) })) })) (if_statement "if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n      FUN_002f1e60(local_58);\n    }" { (expression_statement "FUN_002f1e60(local_58);" (call_expression "FUN_002f1e60(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_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);" (assignment_expression "local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" identifier = (call_expression "FUN_00179620(*(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_168 = local_160 + 0x30;" (assignment_expression "local_168 = local_160 + 0x30" identifier = (binary_expression "local_160 + 0x30" 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_170 = local_160 + 0x60;" (assignment_expression "local_170 = local_160 + 0x60" identifier = (binary_expression "local_160 + 0x60" identifier + number_literal)) ;) (expression_statement "bVar25 = true;" (assignment_expression "bVar25 = true" identifier = true) ;) }))) (if_statement "if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" { comment (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../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_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    /* try { // try from 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0'))" ( (binary_expression "(*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')" (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2)" ( (binary_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" * (cast_expression "(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 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    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    /* try { // try from 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "pcVar3 = *(code **)(*param_2 + 0x10);" (assignment_expression "pcVar3 = *(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 (pcVar3 != FUN_00173890) {\n                    /* try { // try from 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }" if (parenthesized_expression "(pcVar3 != FUN_00173890)" ( (binary_expression "pcVar3 != FUN_00173890" identifier != identifier) )) (compound_statement "{\n                    /* try { // try from 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }" { comment (expression_statement "local_135 = (*pcVar3)(param_2,local_78[0]);" (assignment_expression "local_135 = (*pcVar3)(param_2,local_78[0])" identifier = (call_expression "(*pcVar3)(param_2,local_78[0])" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(param_2,local_78[0])" ( identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (goto_statement "goto LAB_00170f04;" goto statement_identifier ;) })) (expression_statement "pcVar3 = *(code **)(*param_2 + 0x98);" (assignment_expression "pcVar3 = *(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 "bVar26 = pcVar3 < FUN_00173800;" (assignment_expression "bVar26 = pcVar3 < FUN_00173800" identifier = (binary_expression "pcVar3 < FUN_00173800" identifier < identifier)) ;) (expression_statement "bVar28 = pcVar3 == FUN_00173800;" (assignment_expression "bVar28 = pcVar3 == FUN_00173800" identifier = (binary_expression "pcVar3 == FUN_00173800" identifier == identifier)) ;) (if_statement "if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }" if (parenthesized_expression "(!bVar28)" ( (unary_expression "!bVar28" ! identifier) )) (compound_statement "{\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }" { (expression_statement "local_135 = (*pcVar3)(param_2,local_78[0]);" (assignment_expression "local_135 = (*pcVar3)(param_2,local_78[0])" identifier = (call_expression "(*pcVar3)(param_2,local_78[0])" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(param_2,local_78[0])" ( identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (goto_statement "goto LAB_00170f04;" goto statement_identifier ;) })) (expression_statement "lVar20 = 0xc;" (assignment_expression "lVar20 = 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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);" do (compound_statement "{\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar17 < *pbVar14;" (assignment_expression "bVar26 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar28 = *pbVar17 == *pbVar14;" (assignment_expression "bVar28 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar28)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = (!bVar26 && !bVar28) == bVar26;" (assignment_expression "bVar26 = (!bVar26 && !bVar28) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar28) == bVar26" (parenthesized_expression "(!bVar26 && !bVar28)" ( (binary_expression "!bVar26 && !bVar28" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar28" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }" { (expression_statement "lVar20 = 0x11;" (assignment_expression "lVar20 = 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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);" do (compound_statement "{\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" identifier = false) ;) (expression_statement "bVar26 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar26 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }" { (expression_statement "lVar20 = 0xc;" (assignment_expression "lVar20 = 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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);" do (compound_statement "{\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar28 = *pbVar17 < *pbVar14;" (assignment_expression "bVar28 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = (!bVar28 && !bVar26) == bVar28;" (assignment_expression "bVar26 = (!bVar28 && !bVar26) == bVar28" identifier = (binary_expression "(!bVar28 && !bVar26) == bVar28" (parenthesized_expression "(!bVar28 && !bVar26)" ( (binary_expression "!bVar28 && !bVar26" (unary_expression "!bVar28" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }" { (expression_statement "lVar20 = 0x11;" (assignment_expression "lVar20 = 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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);" do (compound_statement "{\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" identifier = false) ;) (expression_statement "bVar26 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar26 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }" { (expression_statement "lVar20 = 9;" (assignment_expression "lVar20 = 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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);" do (compound_statement "{\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar28 = *pbVar17 < *pbVar14;" (assignment_expression "bVar28 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "local_135 = (!bVar28 && !bVar26) != bVar28;" (assignment_expression "local_135 = (!bVar28 && !bVar26) != bVar28" identifier = (binary_expression "(!bVar28 && !bVar26) != bVar28" (parenthesized_expression "(!bVar28 && !bVar26)" ( (binary_expression "!bVar28 && !bVar26" (unary_expression "!bVar28" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) != identifier)) ;) (goto_statement "goto LAB_00170f04;" goto statement_identifier ;) })) })) })) })) })) (expression_statement "local_135 = '\0';" (assignment_expression "local_135 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_00170f04:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);" do (compound_statement "{\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    }" { (expression_statement "uVar6 = param_5[1];" (assignment_expression "uVar6 = param_5[1]" identifier = (subscript_expression "param_5[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = uVar6 >> 0x18;" (assignment_expression "uVar4 = uVar6 >> 0x18" identifier = (binary_expression "uVar6 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar7 = param_5[2];" (assignment_expression "uVar7 = param_5[2]" identifier = (subscript_expression "param_5[2]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;" (assignment_expression "uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8" identifier = (binary_expression "((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8" (parenthesized_expression "((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18)" ( (binary_expression "(uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "(uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal)) )) >> number_literal)) ;) (expression_statement "uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;" (assignment_expression "uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" identifier = (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }" if (parenthesized_expression "(uVar21 < param_7)" ( (binary_expression "uVar21 < param_7" identifier < identifier) )) (compound_statement "{\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 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_0018ff20("../../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_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }" { comment (expression_statement "FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");" (call_expression "FUN_0018ff20("../../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 "lVar20 = (ulong)(uVar21 << 4) + param_8;" (assignment_expression "lVar20 = (ulong)(uVar21 << 4) + param_8" identifier = (binary_expression "(ulong)(uVar21 << 4) + param_8" (call_expression "(ulong)(uVar21 << 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar21 << 4)" ( (binary_expression "uVar21 << 4" identifier << number_literal) ))) + identifier)) ;) (expression_statement "uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;" (assignment_expression "uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8" identifier = (binary_expression "*(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8" (binary_expression "*(ushort *)(lVar20 + 0xe) << 8" (pointer_expression "*(ushort *)(lVar20 + 0xe)" * (cast_expression "(ushort *)(lVar20 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xe)" ( (binary_expression "lVar20 + 0xe" identifier + number_literal) )))) << number_literal) | (binary_expression "*(ushort *)(lVar20 + 0xe) >> 8" (pointer_expression "*(ushort *)(lVar20 + 0xe)" * (cast_expression "(ushort *)(lVar20 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xe)" ( (binary_expression "lVar20 + 0xe" identifier + number_literal) )))) >> number_literal))) ;) (expression_statement "uVar7 = (uint)uVar15;" (assignment_expression "uVar7 = (uint)uVar15" identifier = (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }" if (parenthesized_expression "(uVar15 < 0xff00)" ( (binary_expression "uVar15 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }" { (labeled_statement "LAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);" statement_identifier : (expression_statement "uVar21 = *(uint *)(lVar20 + 4);" (assignment_expression "uVar21 = *(uint *)(lVar20 + 4)" identifier = (pointer_expression "*(uint *)(lVar20 + 4)" * (cast_expression "(uint *)(lVar20 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 4)" ( (binary_expression "lVar20 + 4" identifier + number_literal) ))))) ;)) (expression_statement "uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;" (assignment_expression "uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18" identifier = (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18" (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8" (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8" (binary_expression "uVar21 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar21 & 0xff0000) >> 8" (parenthesized_expression "(uVar21 & 0xff0000)" ( (binary_expression "uVar21 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar21 & 0xff00) << 8" (parenthesized_expression "(uVar21 & 0xff00)" ( (binary_expression "uVar21 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar21 << 0x18" identifier << number_literal))) ;) (expression_statement "local_12c = uVar6 + uVar21;" (assignment_expression "local_12c = uVar6 + uVar21" identifier = (binary_expression "uVar6 + uVar21" identifier + identifier)) ;) (if_statement "if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }" { (expression_statement "local_50 = CONCAT44(local_50._4_4_,uVar7);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,uVar7)" identifier = (call_expression "CONCAT44(local_50._4_4_,uVar7)" identifier (argument_list "(local_50._4_4_,uVar7)" ( (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_00177b00(local_160,&local_58);" (call_expression "FUN_00177b00(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (if_statement "if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;" if (parenthesized_expression "((*(byte *)(lVar20 + 0xc) & 0xf) == 3)" ( (binary_expression "(*(byte *)(lVar20 + 0xc) & 0xf) == 3" (parenthesized_expression "(*(byte *)(lVar20 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(lVar20 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar20 + 0xc)" * (cast_expression "(byte *)(lVar20 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xc)" ( (binary_expression "lVar20 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00171112;" goto statement_identifier ;)) (labeled_statement "LAB_00170fb2:\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_00177c80(local_158,&local_58);" (call_expression "FUN_00177c80(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (goto_statement "goto LAB_00170fcd;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }" else (compound_statement "{\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }" { (if_statement "if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }" if (parenthesized_expression "(uVar15 == 0xffff)" ( (binary_expression "uVar15 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }" { (expression_statement "lVar11 = *(long *)(param_3 + 0x40);" (assignment_expression "lVar11 = *(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 (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }" { (expression_statement "lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);" (assignment_expression "lVar11 = (**(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) = lVar11;" (assignment_expression "*(long *)(param_3 + 0x40) = lVar11" (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 "uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);" (assignment_expression "uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21)" identifier = (call_expression "FUN_001d1ac0(lVar11,param_3,uVar21)" identifier (argument_list "(lVar11,param_3,uVar21)" ( identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_001710c0;" goto statement_identifier ;) })) (expression_statement "uVar21 = *(uint *)(lVar20 + 4);" (assignment_expression "uVar21 = *(uint *)(lVar20 + 4)" identifier = (pointer_expression "*(uint *)(lVar20 + 4)" * (cast_expression "(uint *)(lVar20 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 4)" ( (binary_expression "lVar20 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;" (assignment_expression "uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18" identifier = (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18" (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8" (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8" (binary_expression "uVar21 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar21 & 0xff0000) >> 8" (parenthesized_expression "(uVar21 & 0xff0000)" ( (binary_expression "uVar21 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar21 & 0xff00) << 8" (parenthesized_expression "(uVar21 & 0xff00)" ( (binary_expression "uVar21 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar21 << 0x18" identifier << number_literal))) ;) (expression_statement "local_12c = uVar6 + uVar21;" (assignment_expression "local_12c = uVar6 + uVar21" identifier = (binary_expression "uVar6 + uVar21" identifier + identifier)) ;) (if_statement "if (!bVar25) goto LAB_00171042;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_00171042;" 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_00177b00(local_160,&local_58);" (call_expression "FUN_00177b00(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (if_statement "if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;" if (parenthesized_expression "((*(byte *)(lVar20 + 0xc) & 0xf) != 3)" ( (binary_expression "(*(byte *)(lVar20 + 0xc) & 0xf) != 3" (parenthesized_expression "(*(byte *)(lVar20 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(lVar20 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar20 + 0xc)" * (cast_expression "(byte *)(lVar20 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xc)" ( (binary_expression "lVar20 + 0xc" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00170fb2;" goto statement_identifier ;)) (labeled_statement "LAB_00171112:\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_00177c80(local_158,&local_58);" (call_expression "FUN_00177c80(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (labeled_statement "LAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;" statement_identifier : (expression_statement "local_58 = (byte *)(ulong)uVar21;" (assignment_expression "local_58 = (byte *)(ulong)uVar21" identifier = (cast_expression "(byte *)(ulong)uVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar21" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;)) (expression_statement "local_50 = (ulong)(int)uVar6;" (assignment_expression "local_50 = (ulong)(int)uVar6" identifier = (cast_expression "(ulong)(int)uVar6" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "FUN_00177e20(local_168,&local_58);" (call_expression "FUN_00177e20(local_168,&local_58)" identifier (argument_list "(local_168,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "uVar6 = *param_5;" (assignment_expression "uVar6 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) (expression_statement "local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);" (assignment_expression "local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" identifier = (cast_expression "(byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" ( (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal)) ))))) ;) (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_00177450(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_00177450(local_148,puVar1,&local_58);\n          }" { (expression_statement "FUN_00177450(local_148,puVar1,&local_58);" (call_expression "FUN_00177450(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_00177fb0(local_170,&local_88);" (call_expression "FUN_00177fb0(local_170,&local_88)" identifier (argument_list "(local_170,&local_88)" ( identifier , (pointer_expression "&local_88" & identifier) ))) ;) (if_statement "if (!bVar26) goto LAB_00171042;" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (goto_statement "goto LAB_00171042;" goto statement_identifier ;)) }))) (expression_statement "local_118 = param_3;" (assignment_expression "local_118 = param_3" identifier = identifier) ;) (if_statement "if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1))" ( (binary_expression "(local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)" (parenthesized_expression "(local_135 == '\0')" ( (binary_expression "local_135 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((*(byte *)(lVar20 + 0xc) & 0xf) == 1)" ( (binary_expression "(*(byte *)(lVar20 + 0xc) & 0xf) == 1" (parenthesized_expression "(*(byte *)(lVar20 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(lVar20 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar20 + 0xc)" * (cast_expression "(byte *)(lVar20 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xc)" ( (binary_expression "lVar20 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }" { (labeled_statement "LAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;" statement_identifier : (if_statement "if (param_4 != uVar7) goto LAB_001711e3;" if (parenthesized_expression "(param_4 != uVar7)" ( (binary_expression "param_4 != uVar7" identifier != identifier) )) (goto_statement "goto LAB_001711e3;" goto statement_identifier ;))) }) (else_clause "else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" { (expression_statement "lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../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 *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }" if (parenthesized_expression "((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0))))" ( (binary_expression "(*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))" (parenthesized_expression "(*(char *)(lVar11 + 0x2a61) != '\0')" ( (binary_expression "*(char *)(lVar11 + 0x2a61) != '\0'" (pointer_expression "*(char *)(lVar11 + 0x2a61)" * (cast_expression "(char *)(lVar11 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x2a61)" ( (binary_expression "lVar11 + 0x2a61" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))" ( (parenthesized_expression "(uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0))" ( (binary_expression "uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)" (binary_expression "uVar4 < 0x3b" identifier < number_literal) && (parenthesized_expression "((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)" ( (binary_expression "(0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0" (parenthesized_expression "(0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1)" ( (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1" (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)uVar4 & 0x3f)" ( (binary_expression "(ulong)uVar4 & 0x3f" (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }" { (expression_statement "local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);" (assignment_expression "local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8)" identifier = (call_expression "(uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8)" ( (binary_expression "*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8" (binary_expression "*(ushort *)(lVar20 + 0xe) << 8" (pointer_expression "*(ushort *)(lVar20 + 0xe)" * (cast_expression "(ushort *)(lVar20 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xe)" ( (binary_expression "lVar20 + 0xe" identifier + number_literal) )))) << number_literal) | (binary_expression "*(ushort *)(lVar20 + 0xe) >> 8" (pointer_expression "*(ushort *)(lVar20 + 0xe)" * (cast_expression "(ushort *)(lVar20 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xe)" ( (binary_expression "lVar20 + 0xe" identifier + number_literal) )))) >> 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_00174bc0(local_e8,&local_a8,&local_e8,1);" (call_expression "FUN_00174bc0(local_e8,&local_a8,&local_e8,1)" identifier (argument_list "(local_e8,&local_a8,&local_e8,1)" ( identifier , (pointer_expression "&local_a8" & identifier) , (pointer_expression "&local_e8" & identifier) , number_literal ))) ;) (goto_statement "goto LAB_001711d0;" goto statement_identifier ;) })) (if_statement "if (param_4 == uVar7) goto LAB_00171042;" if (parenthesized_expression "(param_4 == uVar7)" ( (binary_expression "param_4 == uVar7" identifier == identifier) )) (goto_statement "goto LAB_00171042;" goto statement_identifier ;)) (labeled_statement "LAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" statement_identifier : (if_statement "if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(lVar11 + 0x2809) != '\0')" ( (binary_expression "*(char *)(lVar11 + 0x2809) != '\0'" (pointer_expression "*(char *)(lVar11 + 0x2809)" * (cast_expression "(char *)(lVar11 + 0x2809)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x2809)" ( (binary_expression "lVar11 + 0x2809" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" { (expression_statement "lVar11 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar11 = *(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 "lVar20 = lVar11 + 0x28;" (assignment_expression "lVar20 = lVar11 + 0x28" identifier = (binary_expression "lVar11 + 0x28" identifier + number_literal)) ;) (expression_statement "local_88 = local_118;" (assignment_expression "local_88 = local_118" identifier = identifier) ;) (expression_statement "lVar12 = lVar20;" (assignment_expression "lVar12 = lVar20" identifier = identifier) ;) (expression_statement "lVar10 = *(long *)(lVar11 + 0x30);" (assignment_expression "lVar10 = *(long *)(lVar11 + 0x30)" identifier = (pointer_expression "*(long *)(lVar11 + 0x30)" * (cast_expression "(long *)(lVar11 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x30)" ( (binary_expression "lVar11 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_98 = param_3;" (assignment_expression "local_98 = param_3" identifier = identifier) ;) (expression_statement "local_90 = param_4;" (assignment_expression "local_90 = param_4" identifier = identifier) ;) (expression_statement "local_80 = uVar7;" (assignment_expression "local_80 = uVar7" identifier = identifier) ;) (if_statement "if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }" if (parenthesized_expression "(*(long *)(lVar11 + 0x30) == 0)" ( (binary_expression "*(long *)(lVar11 + 0x30) == 0" (pointer_expression "*(long *)(lVar11 + 0x30)" * (cast_expression "(long *)(lVar11 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x30)" ( (binary_expression "lVar11 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }" { (labeled_statement "LAB_00171288:\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 "lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);" (assignment_expression "lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea)" identifier = (call_expression "FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea)" identifier (argument_list "(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&DAT_0038b644" & identifier) , (pointer_expression "&local_c8" & identifier) , (pointer_expression "&local_ea" & identifier) )))) ;) }) (else_clause "else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }" else (compound_statement "{\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }" { (do_statement "do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);" do (compound_statement "{\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              }" { (while_statement "while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }" while (parenthesized_expression "((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       )))" ( (parenthesized_expression "(lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))" ( (comma_expression "lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       )" (assignment_expression "lVar8 = lVar10" identifier = identifier) , (binary_expression "*(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       )" (binary_expression "*(byte **)(lVar8 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar8 + 0x20)" * (cast_expression "(byte **)(lVar8 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar8 + 0x20)" ( (binary_expression "lVar8 + 0x20" identifier + number_literal) )))) < identifier) || (parenthesized_expression "((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       )" ( (parenthesized_expression "(param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))" ( (binary_expression "param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar8 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar8 + 0x20)" * (cast_expression "(byte **)(lVar8 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar8 + 0x20)" ( (binary_expression "lVar8 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(lVar8 + 0x28) < param_4)" ( (binary_expression "*(uint *)(lVar8 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar8 + 0x28)" * (cast_expression "(uint *)(lVar8 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x28)" ( (binary_expression "lVar8 + 0x28" identifier + number_literal) )))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }" { (expression_statement "plVar2 = (long *)(lVar8 + 0x18);" (assignment_expression "plVar2 = (long *)(lVar8 + 0x18)" identifier = (cast_expression "(long *)(lVar8 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x18)" ( (binary_expression "lVar8 + 0x18" identifier + number_literal) )))) ;) (expression_statement "lVar8 = lVar12;" (assignment_expression "lVar8 = lVar12" identifier = identifier) ;) (expression_statement "lVar10 = *plVar2;" (assignment_expression "lVar10 = *plVar2" identifier = (pointer_expression "*plVar2" * identifier)) ;) (if_statement "if (*plVar2 == 0) goto LAB_0017126a;" if (parenthesized_expression "(*plVar2 == 0)" ( (binary_expression "*plVar2 == 0" (pointer_expression "*plVar2" * identifier) == number_literal) )) (goto_statement "goto LAB_0017126a;" goto statement_identifier ;)) })) (expression_statement "lVar12 = lVar8;" (assignment_expression "lVar12 = lVar8" identifier = identifier) ;) (expression_statement "lVar10 = *(long *)(lVar8 + 0x10);" (assignment_expression "lVar10 = *(long *)(lVar8 + 0x10)" identifier = (pointer_expression "*(long *)(lVar8 + 0x10)" * (cast_expression "(long *)(lVar8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x10)" ( (binary_expression "lVar8 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(long *)(lVar8 + 0x10) != 0)" ( (binary_expression "*(long *)(lVar8 + 0x10) != 0" (pointer_expression "*(long *)(lVar8 + 0x10)" * (cast_expression "(long *)(lVar8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x10)" ( (binary_expression "lVar8 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_0017126a:\n              bVar26 = lVar8 == lVar20;" statement_identifier : (expression_statement "bVar26 = lVar8 == lVar20;" (assignment_expression "bVar26 = lVar8 == lVar20" identifier = (binary_expression "lVar8 == lVar20" identifier == identifier)) ;)) (expression_statement "lVar20 = lVar8;" (assignment_expression "lVar20 = lVar8" identifier = identifier) ;) (if_statement "if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;" if (parenthesized_expression "(((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))" ( (binary_expression "((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28))))" (parenthesized_expression "((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20)))" ( (binary_expression "(bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))" (parenthesized_expression "(bVar26)" ( identifier )) || (parenthesized_expression "(param_3 < *(byte **)(lVar8 + 0x20))" ( (binary_expression "param_3 < *(byte **)(lVar8 + 0x20)" identifier < (pointer_expression "*(byte **)(lVar8 + 0x20)" * (cast_expression "(byte **)(lVar8 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar8 + 0x20)" ( (binary_expression "lVar8 + 0x20" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28))))" ( (parenthesized_expression "(param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))" ( (binary_expression "param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar8 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar8 + 0x20)" * (cast_expression "(byte **)(lVar8 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar8 + 0x20)" ( (binary_expression "lVar8 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(param_4 < *(uint *)(lVar8 + 0x28))" ( (binary_expression "param_4 < *(uint *)(lVar8 + 0x28)" identifier < (pointer_expression "*(uint *)(lVar8 + 0x28)" * (cast_expression "(uint *)(lVar8 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x28)" ( (binary_expression "lVar8 + 0x28" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_00171288;" goto statement_identifier ;)) }))) (expression_statement "local_d0 = lVar8 + 0x30;" (assignment_expression "local_d0 = lVar8 + 0x30" identifier = (binary_expression "lVar8 + 0x30" identifier + number_literal)) ;) (expression_statement "FUN_00174c60(local_d0,&local_88,&local_d0,1);" (call_expression "FUN_00174c60(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 "plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);" (assignment_expression "plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0045c708 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0045c708 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x18)" ( (binary_expression "PTR_DAT_0045c708 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }" if (parenthesized_expression "(plVar2 == (long *)0x0)" ( (binary_expression "plVar2 == (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_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }" { comment (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_0018ff20("../../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 **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }" if (parenthesized_expression "(*(code **)(*plVar2 + 0x208) != FUN_00172d60)" ( (binary_expression "*(code **)(*plVar2 + 0x208) != FUN_00172d60" (pointer_expression "*(code **)(*plVar2 + 0x208)" * (cast_expression "(code **)(*plVar2 + 0x208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x208)" ( (binary_expression "*plVar2 + 0x208" (pointer_expression "*plVar2" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }" { (expression_statement "(**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);" (call_expression "(**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c)" (parenthesized_expression "(**(code **)(*plVar2 + 0x208))" ( (pointer_expression "**(code **)(*plVar2 + 0x208)" * (pointer_expression "*(code **)(*plVar2 + 0x208)" * (cast_expression "(code **)(*plVar2 + 0x208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x208)" ( (binary_expression "*plVar2 + 0x208" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 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              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }" { (expression_statement "lVar20 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar20 = *(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 "sVar9 = strlen((char *)local_140);" (assignment_expression "sVar9 = 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_00174550(&local_58,local_140,local_140 + sVar9);" (call_expression "FUN_00174550(&local_58,local_140,local_140 + sVar9)" identifier (argument_list "(&local_58,local_140,local_140 + sVar9)" ( (pointer_expression "&local_58" & identifier) , identifier , (binary_expression "local_140 + sVar9" identifier + identifier) ))) ;) (expression_statement "lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);" (assignment_expression "lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58)" identifier = (call_expression "FUN_001775a0(lVar20 + 0x88,&local_58)" identifier (argument_list "(lVar20 + 0x88,&local_58)" ( (binary_expression "lVar20 + 0x88" identifier + number_literal) , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (local_58 != local_48) {\n                FUN_002f1e60();\n              }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n                FUN_002f1e60();\n              }" { (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar11 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar11 = *(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 (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }" if (parenthesized_expression "(lVar20 != lVar11 + 0x90)" ( (binary_expression "lVar20 != lVar11 + 0x90" identifier != (binary_expression "lVar11 + 0x90" identifier + number_literal)) )) (compound_statement "{\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }" { (expression_statement "lVar12 = lVar11 + 0x28;" (assignment_expression "lVar12 = lVar11 + 0x28" identifier = (binary_expression "lVar11 + 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 "lVar10 = lVar12;" (assignment_expression "lVar10 = lVar12" identifier = identifier) ;) (expression_statement "lVar8 = *(long *)(lVar11 + 0x30);" (assignment_expression "lVar8 = *(long *)(lVar11 + 0x30)" identifier = (pointer_expression "*(long *)(lVar11 + 0x30)" * (cast_expression "(long *)(lVar11 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x30)" ( (binary_expression "lVar11 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }" if (parenthesized_expression "(*(long *)(lVar11 + 0x30) == 0)" ( (binary_expression "*(long *)(lVar11 + 0x30) == 0" (pointer_expression "*(long *)(lVar11 + 0x30)" * (cast_expression "(long *)(lVar11 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x30)" ( (binary_expression "lVar11 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }" { (labeled_statement "LAB_001717c0:\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 "lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);" (assignment_expression "lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9)" identifier = (call_expression "FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9)" identifier (argument_list "(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&DAT_0038b644" & identifier) , (pointer_expression "&local_c0" & identifier) , (pointer_expression "&local_e9" & identifier) )))) ;) }) (else_clause "else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }" else (compound_statement "{\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }" { (do_statement "do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);" do (compound_statement "{\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  }" { (while_statement "while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }" while (parenthesized_expression "((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)))))" ( (parenthesized_expression "(lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))" ( (comma_expression "lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)))" (assignment_expression "lVar13 = lVar8" identifier = identifier) , (binary_expression "*(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)))" (binary_expression "*(byte **)(lVar13 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar13 + 0x20)" * (cast_expression "(byte **)(lVar13 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x20)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) )))) < identifier) || (parenthesized_expression "((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)))" ( (parenthesized_expression "(param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))" ( (binary_expression "param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar13 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar13 + 0x20)" * (cast_expression "(byte **)(lVar13 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x20)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(lVar13 + 0x28) < param_4)" ( (binary_expression "*(uint *)(lVar13 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar13 + 0x28)" * (cast_expression "(uint *)(lVar13 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x28)" ( (binary_expression "lVar13 + 0x28" identifier + number_literal) )))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }" { (expression_statement "plVar2 = (long *)(lVar13 + 0x18);" (assignment_expression "plVar2 = (long *)(lVar13 + 0x18)" identifier = (cast_expression "(long *)(lVar13 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x18)" ( (binary_expression "lVar13 + 0x18" identifier + number_literal) )))) ;) (expression_statement "lVar13 = lVar10;" (assignment_expression "lVar13 = lVar10" identifier = identifier) ;) (expression_statement "lVar8 = *plVar2;" (assignment_expression "lVar8 = *plVar2" identifier = (pointer_expression "*plVar2" * identifier)) ;) (if_statement "if (*plVar2 == 0) goto LAB_001713d2;" if (parenthesized_expression "(*plVar2 == 0)" ( (binary_expression "*plVar2 == 0" (pointer_expression "*plVar2" * identifier) == number_literal) )) (goto_statement "goto LAB_001713d2;" goto statement_identifier ;)) })) (expression_statement "lVar10 = lVar13;" (assignment_expression "lVar10 = lVar13" identifier = identifier) ;) (expression_statement "lVar8 = *(long *)(lVar13 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar13 + 0x10)" identifier = (pointer_expression "*(long *)(lVar13 + 0x10)" * (cast_expression "(long *)(lVar13 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x10)" ( (binary_expression "lVar13 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(long *)(lVar13 + 0x10) != 0)" ( (binary_expression "*(long *)(lVar13 + 0x10) != 0" (pointer_expression "*(long *)(lVar13 + 0x10)" * (cast_expression "(long *)(lVar13 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x10)" ( (binary_expression "lVar13 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_001713d2:\n                  bVar26 = lVar12 == lVar13;" statement_identifier : (expression_statement "bVar26 = lVar12 == lVar13;" (assignment_expression "bVar26 = lVar12 == lVar13" identifier = (binary_expression "lVar12 == lVar13" identifier == identifier)) ;)) (expression_statement "lVar12 = lVar13;" (assignment_expression "lVar12 = lVar13" identifier = identifier) ;) (if_statement "if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;" if (parenthesized_expression "(((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28)))))" ( (binary_expression "((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))" (parenthesized_expression "((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20)))" ( (binary_expression "(bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))" (parenthesized_expression "(bVar26)" ( identifier )) || (parenthesized_expression "(param_3 < *(byte **)(lVar13 + 0x20))" ( (binary_expression "param_3 < *(byte **)(lVar13 + 0x20)" identifier < (pointer_expression "*(byte **)(lVar13 + 0x20)" * (cast_expression "(byte **)(lVar13 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x20)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))" ( (parenthesized_expression "(local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28)))" ( (comma_expression "local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))" (assignment_expression "local_58 = param_3" identifier = identifier) , (binary_expression "param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar13 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar13 + 0x20)" * (cast_expression "(byte **)(lVar13 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x20)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(param_4 < *(uint *)(lVar13 + 0x28))" ( (binary_expression "param_4 < *(uint *)(lVar13 + 0x28)" identifier < (pointer_expression "*(uint *)(lVar13 + 0x28)" * (cast_expression "(uint *)(lVar13 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x28)" ( (binary_expression "lVar13 + 0x28" identifier + number_literal) ))))) )))) )) ))) )) (goto_statement "goto LAB_001717c0;" goto statement_identifier ;)) }))) (for_statement "for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }" for ( (assignment_expression "puVar1 = *(undefined8 **)(lVar20 + 0x50)" identifier = (pointer_expression "*(undefined8 **)(lVar20 + 0x50)" * (cast_expression "(undefined8 **)(lVar20 + 0x50)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar20 + 0x50)" ( (binary_expression "lVar20 + 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 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }" { (expression_statement "local_d8 = lVar13 + 0x30;" (assignment_expression "local_d8 = lVar13 + 0x30" identifier = (binary_expression "lVar13 + 0x30" identifier + number_literal)) ;) (expression_statement "FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);" (call_expression "FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1)" identifier (argument_list "(lVar13 + 0x30,puVar1 + 1,&local_d8,1)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) , (binary_expression "puVar1 + 1" identifier + number_literal) , (pointer_expression "&local_d8" & identifier) , number_literal ))) ;) })) })) })) }))) }))) }) (else_clause "else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }" else (compound_statement "{\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }" { (if_statement "if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" if (parenthesized_expression "(uVar21 < *(uint *)(param_3 + 0x120))" ( (binary_expression "uVar21 < *(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_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../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_001716a8:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");" statement_identifier : comment (expression_statement "FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");" (call_expression "FUN_0018ff20("../../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 "uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));" (assignment_expression "uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120))" identifier = (call_expression "(ulong)(uVar21 - *(uint *)(param_3 + 0x120))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar21 - *(uint *)(param_3 + 0x120))" ( (binary_expression "uVar21 - *(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) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }" if (parenthesized_expression "((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22)" ( (binary_expression "(ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22" (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_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }" { comment (expression_statement "FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");" (call_expression "FUN_0018ff20("../../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) + uVar22 * 8);" (assignment_expression "local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8)" identifier = (pointer_expression "*(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8)" * (cast_expression "(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_3 + 0x130) + uVar22 * 8)" ( (binary_expression "*(long *)(param_3 + 0x130) + uVar22 * 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 "uVar22 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (local_88 == (byte *)0x0) goto LAB_001716a8;" 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_001716a8;" goto statement_identifier ;)) (if_statement "if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(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_00284df0(param_1,local_88);\n        }" { (expression_statement "local_88 = (byte *)FUN_00284df0(param_1,local_88);" (assignment_expression "local_88 = (byte *)FUN_00284df0(param_1,local_88)" identifier = (cast_expression "(byte *)FUN_00284df0(param_1,local_88)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00284df0(param_1,local_88)" identifier (argument_list "(param_1,local_88)" ( identifier , identifier ))))) ;) })) (if_statement "if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\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 *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }" { (expression_statement "pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);" (assignment_expression "pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40)" identifier = (binary_expression "(byte *)(ulong)*(uint *)(local_88 + 0x40)" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_118 = *(byte **)(local_88 + 0x10);" (assignment_expression "local_118 = *(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_12c = uVar6 + *(uint *)(local_88 + 0x40);" (assignment_expression "local_12c = uVar6 + *(uint *)(local_88 + 0x40)" identifier = (binary_expression "uVar6 + *(uint *)(local_88 + 0x40)" identifier + (pointer_expression "*(uint *)(local_88 + 0x40)" * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) )))))) ;) (if_statement "if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }" if (parenthesized_expression "((local_118[0x3c] & 1) == 0)" ( (binary_expression "(local_118[0x3c] & 1) == 0" (parenthesized_expression "(local_118[0x3c] & 1)" ( (binary_expression "local_118[0x3c] & 1" (subscript_expression "local_118[0x3c]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }" { (expression_statement "uVar7 = *(uint *)(local_88 + 0x18);" (assignment_expression "uVar7 = *(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 "bVar19 = local_88[0x3b] >> 5 & 1;" (assignment_expression "bVar19 = 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 "uVar23 = (local_88[0x38] & 0xf) < 2;" (assignment_expression "uVar23 = (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 "uVar27 = (local_88[0x38] & 0xf) == 2;" (assignment_expression "uVar27 = (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)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }" if (parenthesized_expression "((bool)uVar27)" ( (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar27 = local_135 == '\0';" (assignment_expression "uVar27 = local_135 == '\0'" identifier = (binary_expression "local_135 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }" if (parenthesized_expression "(!(bool)uVar27)" ( (unary_expression "!(bool)uVar27" ! (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }" { (expression_statement "uVar23 = false;" (assignment_expression "uVar23 = false" identifier = false) ;) (expression_statement "uVar27 = bVar19 == 0;" (assignment_expression "uVar27 = bVar19 == 0" identifier = (binary_expression "bVar19 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }" if (parenthesized_expression "(!(bool)uVar27)" ( (unary_expression "!(bool)uVar27" ! (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }" { (if_statement "if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }" { comment (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../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_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }" { (expression_statement "uVar23 = false;" (assignment_expression "uVar23 = false" identifier = false) ;) (expression_statement "uVar27 = (local_88[0x39] & 3) == 0;" (assignment_expression "uVar27 = (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)uVar27) goto LAB_00171878;" if (parenthesized_expression "(!(bool)uVar27)" ( (unary_expression "!(bool)uVar27" ! (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00171878;" goto statement_identifier ;)) })) (expression_statement "uVar23 = uVar4 < 0x3a;" (assignment_expression "uVar23 = uVar4 < 0x3a" identifier = (binary_expression "uVar4 < 0x3a" identifier < number_literal)) ;) (expression_statement "uVar27 = uVar4 == 0x3a;" (assignment_expression "uVar27 = uVar4 == 0x3a" identifier = (binary_expression "uVar4 == 0x3a" identifier == number_literal)) ;) (if_statement "if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;" if (parenthesized_expression "((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     ))" ( (binary_expression "(0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )" (parenthesized_expression "(0x3a < uVar4)" ( (binary_expression "0x3a < uVar4" number_literal < identifier) )) || (parenthesized_expression "(uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )" ( (comma_expression "uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23" (assignment_expression "uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0" identifier = (binary_expression "(0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0" (parenthesized_expression "(0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1)" ( (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1" (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)uVar4 & 0x3f)" ( (binary_expression "(ulong)uVar4 & 0x3f" (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal)) , (unary_expression "!(bool)uVar23" ! (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_001714f0;" goto statement_identifier ;)) })) (labeled_statement "LAB_00171878:\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_118;" (assignment_expression "local_b8 = local_118" identifier = identifier) ;) (expression_statement "local_b0 = uVar7;" (assignment_expression "local_b0 = uVar7" identifier = identifier) ;) (expression_statement "FUN_00174bc0(local_e0,&local_b8,&local_e0,1);" (call_expression "FUN_00174bc0(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 ))) ;) })) })) }) (else_clause "else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }" else (compound_statement "{\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }" { (expression_statement "local_118 = (byte *)0x0;" (assignment_expression "local_118 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar27 = 1;" (assignment_expression "uVar27 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }" else (compound_statement "{\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }" { (expression_statement "pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);" (assignment_expression "pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40)" identifier = (binary_expression "(byte *)(ulong)*(uint *)(local_88 + 0x40)" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "local_118 = (byte *)0x0;" (assignment_expression "local_118 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_12c = uVar6 + *(uint *)(local_88 + 0x40);" (assignment_expression "local_12c = uVar6 + *(uint *)(local_88 + 0x40)" identifier = (binary_expression "uVar6 + *(uint *)(local_88 + 0x40)" identifier + (pointer_expression "*(uint *)(local_88 + 0x40)" * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) )))))) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar27 = 1;" (assignment_expression "uVar27 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_001714f0:\n        pbVar14 = *(byte **)local_88;" statement_identifier : (expression_statement "pbVar14 = *(byte **)local_88;" (assignment_expression "pbVar14 = *(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 "lVar20 = 8;" (assignment_expression "lVar20 = 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 = pbVar14;" (assignment_expression "pbVar18 = pbVar14" identifier = identifier) ;) (do_statement "do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);" do (compound_statement "{\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "uVar23 = *pbVar16 < *pbVar18;" (assignment_expression "uVar23 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "uVar27 = *pbVar16 == *pbVar18;" (assignment_expression "uVar27 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar27)" ( (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;" (assignment_expression "bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23" identifier = (binary_expression "(!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23" (parenthesized_expression "(!(bool)uVar23 && !(bool)uVar27)" ( (binary_expression "!(bool)uVar23 && !(bool)uVar27" (unary_expression "!(bool)uVar23" ! (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar27" ! (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }" if (parenthesized_expression "(bVar28)" ( identifier )) (compound_statement "{\n          pbVar14 = pbVar14 + 8;\n        }" { (expression_statement "pbVar14 = pbVar14 + 8;" (assignment_expression "pbVar14 = pbVar14 + 8" identifier = (binary_expression "pbVar14 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }" else (compound_statement "{\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }" { (expression_statement "lVar20 = 7;" (assignment_expression "lVar20 = 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 = pbVar14;" (assignment_expression "pbVar18 = pbVar14" identifier = identifier) ;) (do_statement "do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);" do (compound_statement "{\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar16 < *pbVar18;" (assignment_expression "bVar26 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar28 = *pbVar16 == *pbVar18;" (assignment_expression "bVar28 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar28)" ( identifier )) ;) (expression_statement "pbVar14 = pbVar14 + 7;" (assignment_expression "pbVar14 = pbVar14 + 7" identifier = (binary_expression "pbVar14 + 7" identifier + number_literal)) ;) (if_statement "if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }" if (parenthesized_expression "((!bVar26 && !bVar28) != bVar26)" ( (binary_expression "(!bVar26 && !bVar28) != bVar26" (parenthesized_expression "(!bVar26 && !bVar28)" ( (binary_expression "!bVar26 && !bVar28" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar28" ! identifier)) )) != identifier) )) (compound_statement "{\n            pbVar14 = local_140;\n          }" { (expression_statement "pbVar14 = local_140;" (assignment_expression "pbVar14 = local_140" identifier = identifier) ;) })) }))) (expression_statement "local_140 = pbVar14;" (assignment_expression "local_140 = pbVar14" identifier = identifier) ;) (if_statement "if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }" { (if_statement "if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (compound_statement "{\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(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_00177b00(local_160,&local_58);" (call_expression "FUN_00177b00(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }" else (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }" { (expression_statement "local_50 = CONCAT44(local_50._4_4_,uVar7);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,uVar7)" identifier = (call_expression "CONCAT44(local_50._4_4_,uVar7)" identifier (argument_list "(local_50._4_4_,uVar7)" ( (field_expression "local_50._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_58 = local_118;" (assignment_expression "local_58 = local_118" identifier = identifier) ;) (expression_statement "FUN_00177b00(local_160,&local_58);" (call_expression "FUN_00177b00(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_00174210(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_00174210(local_158,puVar1,&local_88);\n          }" { (expression_statement "FUN_00174210(local_158,puVar1,&local_88);" (call_expression "FUN_00174210(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_50 = (ulong)(int)uVar6;" (assignment_expression "local_50 = (ulong)(int)uVar6" identifier = (cast_expression "(ulong)(int)uVar6" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_58 = pbVar17;" (assignment_expression "local_58 = pbVar17" identifier = identifier) ;) (expression_statement "FUN_00177e20(local_168,&local_58);" (call_expression "FUN_00177e20(local_168,&local_58)" identifier (argument_list "(local_168,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "uVar6 = *param_5;" (assignment_expression "uVar6 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) (expression_statement "local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);" (assignment_expression "local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" identifier = (cast_expression "(byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" ( (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal)) ))))) ;) (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_00177450(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_00177450(local_148,puVar1,&local_58);\n          }" { (expression_statement "FUN_00177450(local_148,puVar1,&local_58);" (call_expression "FUN_00177450(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_00177fb0(local_170,&local_98);" (call_expression "FUN_00177fb0(local_170,&local_98)" identifier (argument_list "(local_170,&local_98)" ( identifier , (pointer_expression "&local_98" & identifier) ))) ;) })) (if_statement "if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }" if (parenthesized_expression "(bVar19 != 0)" ( (binary_expression "bVar19 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }" { (labeled_statement "LAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);" statement_identifier : (expression_statement "lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) ))))) ;)) (if_statement "if (lVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (goto_statement "goto LAB_001711f7;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00171042:\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_002f1e60();\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_002f1e60();\n  }" { (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original name: gc_process_relocs<32, true, (anonymous namespace)::Target_s390<32>,\n   (anonymous namespace)::Target_s390<32>::Scan, gold::Default_classify_reloc<4, 32, true> > */\n\nvoid gold::\n     gc_process_relocs<32,_true,_(anonymous_namespace)::Target_s390<32>,_(anonymous_namespace)::Target_s390<32>::Scan,_gold::Default_classify_reloc<4,_32,_true>_>\n               (Symbol_table *symtab,Layout *param_2,Target_s390<32> *target,\n               Sized_relobj_file<32,_true> *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  Garbage_collection *pGVar3;\n  _Base_ptr p_Var4;\n  Target *pTVar5;\n  _Base_ptr p_Var6;\n  _func_int_varargs **pp_Var7;\n  iterator __position;\n  code *pcVar8;\n  uint uVar9;\n  char cVar10;\n  uint uVar11;\n  uint uVar12;\n  ulong to;\n  General_options *pGVar13;\n  iterator iVar14;\n  size_t sVar15;\n  iterator iVar16;\n  _Base_ptr p_Var17;\n  Xindex *this;\n  const_iterator cVar18;\n  uint uVar19;\n  long lVar20;\n  byte bVar21;\n  pointer pcVar22;\n  ushort uVar23;\n  byte *pbVar24;\n  _func_int_varargs **pp_Var25;\n  _Alloc_hider _Var26;\n  Relobj *pRVar27;\n  undefined4 in_register_00000084;\n  uint *puVar28;\n  byte bVar29;\n  uint uVar30;\n  uint uVar31;\n  ulong uVar32;\n  undefined1 uVar33;\n  bool bVar34;\n  bool bVar35;\n  bool bVar36;\n  undefined1 uVar37;\n  bool bVar38;\n  byte bVar39;\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  uint local_12c;\n  Output_segment *local_118;\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_s390<32> *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  puVar28 = (uint *)CONCAT44(in_register_00000084,src_indx);\n  bVar39 = 0;\n  uVar19 = (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->s390_info + 0x80))\n              (&src_section_name,target,(ulong)src_obj & 0xffffffff);\n  }\n  _Var26._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_00170ea5:\n    bVar35 = 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    pcVar22 = (pointer)0xffffffffffffffff;\n    src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n    uVar33 = 0;\n    uVar37 = src_section_name._M_dataplus._M_p == (pointer)0x0;\n    if (!(bool)uVar37) {\n      sVar15 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar22 = _Var26._M_p + sVar15;\n    }\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var26._M_p,pcVar22);\n    lVar20 = 5;\n    pbVar24 = (byte *)".text";\n    pRVar27 = src_id.first;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n      uVar33 = *pbVar24 < bVar29;\n      uVar37 = *pbVar24 == bVar29;\n      pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n      pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n    } while ((bool)uVar37);\n    bVar35 = false;\n    bVar36 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;\n    if (!bVar36) {\n      lVar20 = 0xf;\n      pbVar24 = (byte *)".gnu.linkonce.t";\n      pRVar27 = src_id.first;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n        bVar35 = *pbVar24 < bVar29;\n        bVar36 = *pbVar24 == bVar29;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n      } while (bVar36);\n      if ((!bVar35 && !bVar36) != bVar35) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n      operator_delete(src_id.first);\n    }\n    src_id.second = uVar19;\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_168 = &local_160->addend_info;\n    local_148 = &local_160->offset_info;\n    local_170 = &local_160->reloc_addend_size_info;\n    bVar35 = true;\n  }\n  if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((parameters->options_->icf_status_ == ICF_SAFE) &&\n     (cVar10 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar10 != '\0')) {\n    pcVar8 = *(code **)(*(long *)param_2 + 0x10);\n    if (pcVar8 != Target::section_may_have_icf_unsafe_pointers) {\n                    /* try { // try from 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00170f04;\n    }\n    pcVar8 = *(code **)(*(long *)param_2 + 0x98);\n    bVar36 = pcVar8 < Target::do_section_may_have_icf_unsafe_pointers;\n    bVar38 = pcVar8 == Target::do_section_may_have_icf_unsafe_pointers;\n    if (!bVar38) {\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar24 = (byte *)".rodata._ZTV";\n    _Var26 = src_section_name._M_dataplus;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar36 = *pbVar24 < (byte)*_Var26._M_p;\n      bVar38 = *pbVar24 == *_Var26._M_p;\n      pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n      _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n    } while (bVar38);\n    bVar34 = false;\n    bVar36 = (!bVar36 && !bVar38) == bVar36;\n    if (!bVar36) {\n      lVar20 = 0x11;\n      pbVar24 = (byte *)".data.rel.ro._ZTV";\n      _Var26 = src_section_name._M_dataplus;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n        bVar36 = *pbVar24 == *_Var26._M_p;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n      } while (bVar36);\n      bVar38 = false;\n      bVar36 = (!bVar34 && !bVar36) == bVar34;\n      if (!bVar36) {\n        lVar20 = 0xc;\n        pbVar24 = (byte *)".rodata._ZTC";\n        _Var26 = src_section_name._M_dataplus;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n          bVar36 = *pbVar24 == *_Var26._M_p;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar34 = false;\n        bVar36 = (!bVar38 && !bVar36) == bVar38;\n        if (!bVar36) {\n          lVar20 = 0x11;\n          pbVar24 = (byte *)".data.rel.ro._ZTC";\n          _Var26 = src_section_name._M_dataplus;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n            bVar36 = *pbVar24 == *_Var26._M_p;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar38 = false;\n          bVar36 = (!bVar34 && !bVar36) == bVar34;\n          if (!bVar36) {\n            lVar20 = 9;\n            pbVar24 = (byte *)".eh_frame";\n            _Var26 = src_section_name._M_dataplus;\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n              bVar36 = *pbVar24 == *_Var26._M_p;\n              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n            } while (bVar36);\n            local_135 = (!bVar38 && !bVar36) != bVar38;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00170f04:\n  if (prelocs != (uchar *)0x0) {\n    local_140 = (_func_int_varargs **)0x0;\n    local_100 = (uchar *)0x0;\n    do {\n      uVar11 = puVar28[1];\n      uVar9 = uVar11 >> 0x18;\n      uVar30 = puVar28[2];\n      uVar31 = ((uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18) >> 8;\n      uVar11 = uVar30 >> 0x18 | (uVar30 & 0xff0000) >> 8 | (uVar30 & 0xff00) << 8 | uVar30 << 0x18;\n      if (uVar31 < 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        uVar30 = uVar31 << 4;\n        uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n        uVar23 = uVar23 << 8 | uVar23 >> 8;\n        uVar12 = (uint)uVar23;\n        if (uVar23 < 0xff00) {\nLAB_001710c0:\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (bVar35) {\n            src_id.second = uVar12;\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            bVar36 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3) goto LAB_00171112;\nLAB_00170fb2:\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_00170fcd;\n          }\n        }\n        else {\n          if (uVar23 == 0xffff) {\n            this = (Xindex *)(target->s390_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }\n            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);\n            goto LAB_001710c0;\n          }\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (!bVar35) goto LAB_00171042;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\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          bVar36 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3) goto LAB_00170fb2;\nLAB_00171112:\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_00170fcd:\n          src_id.first = (Relobj *)(ulong)uVar31;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (!bVar36) goto LAB_00171042;\n        }\n        local_118 = (Output_segment *)target;\n        if ((local_135 == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) == 1\n           )) {\nLAB_001711d0:\n          if (uVar19 != uVar12) goto LAB_001711e3;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))) {\n            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_001711d0;\n          }\n          if (uVar19 == uVar12) goto LAB_00171042;\nLAB_001711f7:\n          if ((pGVar13->gc_sections_).value != false) {\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar31 < target[1].got_mod_index_offset_) {\n          dst_id.first = (Relobj *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar32 = (ulong)(uVar31 - target[1].got_mod_index_offset_);\n        if ((ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)\n            <= uVar32) {\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].s390_info + uVar32 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_001716a8;\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          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          local_118 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_12c = uVar11 + uVar30;\n          if (((ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar33 = bVar21 < 2;\n            uVar37 = bVar21 == 2;\n            if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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          }\n          else {\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }\n        }\n        else {\n          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          bVar29 = 0;\n          local_118 = (Output_segment *)0x0;\n          local_12c = uVar11 + uVar30;\n          uVar33 = 0;\n          uVar12 = 0;\n          uVar37 = 1;\n        }\nLAB_001714f0:\n        pp_Var7 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar20 = 8;\n        pbVar24 = (byte *)"__start_";\n        pp_Var25 = pp_Var7;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar33 = *pbVar24 < *(byte *)pp_Var25;\n          uVar37 = *pbVar24 == *(byte *)pp_Var25;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n        } while ((bool)uVar37);\n        bVar36 = false;\n        bVar38 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;\n        if (bVar38) {\n          pp_Var7 = pp_Var7 + 1;\n        }\n        else {\n          lVar20 = 7;\n          pbVar24 = (byte *)"__stop_";\n          pp_Var25 = pp_Var7;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          } while (bVar38);\n          pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);\n          if ((!bVar36 && !bVar38) != bVar36) {\n            pp_Var7 = local_140;\n          }\n        }\n        local_140 = pp_Var7;\n        if (bVar35) {\n          if (bVar29 == 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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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 = (Relobj *)(ulong)uVar30;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (bVar29 != 0) {\nLAB_001711e3:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\n      local_100 = local_100 + 1;\n      puVar28 = puVar28 + 3;\n    } while (prelocs != local_100);\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != &src_section_name.field_2) {\n    operator_delete(src_section_name._M_dataplus._M_p);\n  }\n  return;\n}\n\n" comment comment comment (declaration "void gold::\n     gc_process_relocs<32,_true,_(anonymous_namespace)::Target_s390<32>,_(anonymous_namespace)::Target_s390<32>::Scan,_gold::Default_classify_reloc<4,_32,_true>_>\n               (Symbol_table *symtab,Layout *param_2,Target_s390<32> *target,\n               Sized_relobj_file<32,_true> *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 "<32" < number_literal) , identifier (ERROR ",_(anonymous_namespace)::Target_s390<32>,_(anonymous_namespace)::Target_s390<32>::Scan,_gold::Default_classify_reloc<4" , (function_declarator "_(anonymous_namespace)::Target_s390<32>,_(anonymous_namespace)::Target_s390<32>::Scan" identifier (parameter_list "(anonymous_namespace)" ( (parameter_declaration "anonymous_namespace" type_identifier) )) (ERROR "::" : :) identifier (ERROR "<32>," < number_literal > ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))) (ERROR "::" : :) identifier (ERROR "<32>::" < number_literal > : :) identifier) , identifier : : identifier < number_literal) , identifier , (ERROR "_true>_>\n               (Symbol_table *symtab,Layout *param_2,Target_s390<32> *target,\n               Sized_relobj_file<32,_true> *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 "_true>_>\n               (Symbol_table *symtab,Layout *param_2,Target_s390<32> *target,\n               Sized_relobj_file<32,_true> *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_s390<32> *target,\n               Sized_relobj_file<32,_true> *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_s390<32> *target" type_identifier (ERROR "<32>" < number_literal >) (pointer_declarator "*target" * identifier)) , (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *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 "Garbage_collection *pGVar3;" type_identifier (pointer_declarator "*pGVar3" * identifier) ;) (declaration "_Base_ptr p_Var4;" type_identifier identifier ;) (declaration "Target *pTVar5;" type_identifier (pointer_declarator "*pTVar5" * identifier) ;) (declaration "_Base_ptr p_Var6;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var7;" type_identifier (pointer_declarator "**pp_Var7" * (pointer_declarator "*pp_Var7" * identifier)) ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "ulong to;" type_identifier identifier ;) (declaration "General_options *pGVar13;" type_identifier (pointer_declarator "*pGVar13" * identifier) ;) (declaration "iterator iVar14;" type_identifier identifier ;) (declaration "size_t sVar15;" primitive_type identifier ;) (declaration "iterator iVar16;" type_identifier identifier ;) (declaration "_Base_ptr p_Var17;" type_identifier identifier ;) (declaration "Xindex *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "const_iterator cVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "pointer pcVar22;" type_identifier identifier ;) (declaration "ushort uVar23;" type_identifier identifier ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "_func_int_varargs **pp_Var25;" type_identifier (pointer_declarator "**pp_Var25" * (pointer_declarator "*pp_Var25" * identifier)) ;) (declaration "_Alloc_hider _Var26;" type_identifier identifier ;) (declaration "Relobj *pRVar27;" type_identifier (pointer_declarator "*pRVar27" * identifier) ;) (declaration "undefined4 in_register_00000084;" type_identifier identifier ;) (declaration "uint *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "byte bVar29;" type_identifier identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "ulong uVar32;" type_identifier identifier ;) (declaration "undefined1 uVar33;" type_identifier identifier ;) (declaration "bool bVar34;" primitive_type identifier ;) (declaration "bool bVar35;" primitive_type identifier ;) (declaration "bool bVar36;" primitive_type identifier ;) (declaration "undefined1 uVar37;" type_identifier identifier ;) (declaration "bool bVar38;" primitive_type identifier ;) (declaration "byte bVar39;" 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 "uint local_12c;" type_identifier identifier ;) (declaration "Output_segment *local_118;" type_identifier (pointer_declarator "*local_118" * 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_s390<32> *local_a8;" (update_expression "Target_s390<32> *local_a8" (binary_expression "Target_s390<32> *local_a8" (binary_expression "Target_s390<32" identifier < number_literal) > (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 "puVar28 = (uint *)CONCAT44(in_register_00000084,src_indx);" (assignment_expression "puVar28 = (uint *)CONCAT44(in_register_00000084,src_indx)" identifier = (cast_expression "(uint *)CONCAT44(in_register_00000084,src_indx)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(in_register_00000084,src_indx)" identifier (argument_list "(in_register_00000084,src_indx)" ( identifier , identifier ))))) ;) (expression_statement "bVar39 = 0;" (assignment_expression "bVar39 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = (uint)src_obj;" (assignment_expression "uVar19 = (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->s390_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->s390_info + 0x80))\n              (&src_section_name,target,(ulong)src_obj & 0xffffffff);\n  }" else (compound_statement "{\n    (**(code **)(*(long *)&target->s390_info + 0x80))\n              (&src_section_name,target,(ulong)src_obj & 0xffffffff);\n  }" { (expression_statement "(**(code **)(*(long *)&target->s390_info + 0x80))\n              (&src_section_name,target,(ulong)src_obj & 0xffffffff);" (call_expression "(**(code **)(*(long *)&target->s390_info + 0x80))\n              (&src_section_name,target,(ulong)src_obj & 0xffffffff)" (parenthesized_expression "(**(code **)(*(long *)&target->s390_info + 0x80))" ( (pointer_expression "**(code **)(*(long *)&target->s390_info + 0x80)" * (pointer_expression "*(code **)(*(long *)&target->s390_info + 0x80)" * (cast_expression "(code **)(*(long *)&target->s390_info + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)&target->s390_info + 0x80)" ( (binary_expression "*(long *)&target->s390_info + 0x80" (pointer_expression "*(long *)&target->s390_info" * (cast_expression "(long *)&target->s390_info" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target->s390_info" & (field_expression "target->s390_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 "_Var26._M_p = src_section_name._M_dataplus._M_p;" (assignment_expression "_Var26._M_p = src_section_name._M_dataplus._M_p" (field_expression "_Var26._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_00170ea5:\n    bVar35 = 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    pcVar22 = (pointer)0xffffffffffffffff;\n    src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n    uVar33 = 0;\n    uVar37 = src_section_name._M_dataplus._M_p == (pointer)0x0;\n    if (!(bool)uVar37) {\n      sVar15 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar22 = _Var26._M_p + sVar15;\n    }\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var26._M_p,pcVar22);\n    lVar20 = 5;\n    pbVar24 = (byte *)".text";\n    pRVar27 = src_id.first;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n      uVar33 = *pbVar24 < bVar29;\n      uVar37 = *pbVar24 == bVar29;\n      pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n      pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n    } while ((bool)uVar37);\n    bVar35 = false;\n    bVar36 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;\n    if (!bVar36) {\n      lVar20 = 0xf;\n      pbVar24 = (byte *)".gnu.linkonce.t";\n      pRVar27 = src_id.first;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n        bVar35 = *pbVar24 < bVar29;\n        bVar36 = *pbVar24 == bVar29;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n      } while (bVar36);\n      if ((!bVar35 && !bVar36) != bVar35) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n      operator_delete(src_id.first);\n    }\n    src_id.second = uVar19;\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_168 = &local_160->addend_info;\n    local_148 = &local_160->offset_info;\n    local_170 = &local_160->reloc_addend_size_info;\n    bVar35 = 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_00170ea5:\n    bVar35 = 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_00170ea5:\n    bVar35 = false;" statement_identifier : (expression_statement "bVar35 = false;" (assignment_expression "bVar35 = 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    pcVar22 = (pointer)0xffffffffffffffff;\n    src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n    uVar33 = 0;\n    uVar37 = src_section_name._M_dataplus._M_p == (pointer)0x0;\n    if (!(bool)uVar37) {\n      sVar15 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar22 = _Var26._M_p + sVar15;\n    }\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var26._M_p,pcVar22);\n    lVar20 = 5;\n    pbVar24 = (byte *)".text";\n    pRVar27 = src_id.first;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n      uVar33 = *pbVar24 < bVar29;\n      uVar37 = *pbVar24 == bVar29;\n      pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n      pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n    } while ((bool)uVar37);\n    bVar35 = false;\n    bVar36 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;\n    if (!bVar36) {\n      lVar20 = 0xf;\n      pbVar24 = (byte *)".gnu.linkonce.t";\n      pRVar27 = src_id.first;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n        bVar35 = *pbVar24 < bVar29;\n        bVar36 = *pbVar24 == bVar29;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n      } while (bVar36);\n      if ((!bVar35 && !bVar36) != bVar35) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n      operator_delete(src_id.first);\n    }\n    src_id.second = uVar19;\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_168 = &local_160->addend_info;\n    local_148 = &local_160->offset_info;\n    local_170 = &local_160->reloc_addend_size_info;\n    bVar35 = true;\n  }" else (compound_statement "{\n    pcVar22 = (pointer)0xffffffffffffffff;\n    src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n    uVar33 = 0;\n    uVar37 = src_section_name._M_dataplus._M_p == (pointer)0x0;\n    if (!(bool)uVar37) {\n      sVar15 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar22 = _Var26._M_p + sVar15;\n    }\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var26._M_p,pcVar22);\n    lVar20 = 5;\n    pbVar24 = (byte *)".text";\n    pRVar27 = src_id.first;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n      uVar33 = *pbVar24 < bVar29;\n      uVar37 = *pbVar24 == bVar29;\n      pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n      pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n    } while ((bool)uVar37);\n    bVar35 = false;\n    bVar36 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;\n    if (!bVar36) {\n      lVar20 = 0xf;\n      pbVar24 = (byte *)".gnu.linkonce.t";\n      pRVar27 = src_id.first;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n        bVar35 = *pbVar24 < bVar29;\n        bVar36 = *pbVar24 == bVar29;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n      } while (bVar36);\n      if ((!bVar35 && !bVar36) != bVar35) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n      operator_delete(src_id.first);\n    }\n    src_id.second = uVar19;\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_168 = &local_160->addend_info;\n    local_148 = &local_160->offset_info;\n    local_170 = &local_160->reloc_addend_size_info;\n    bVar35 = true;\n  }" { (expression_statement "pcVar22 = (pointer)0xffffffffffffffff;" (assignment_expression "pcVar22 = (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 "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (expression_statement "uVar37 = src_section_name._M_dataplus._M_p == (pointer)0x0;" (assignment_expression "uVar37 = 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)uVar37) {\n      sVar15 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar22 = _Var26._M_p + sVar15;\n    }" if (parenthesized_expression "(!(bool)uVar37)" ( (unary_expression "!(bool)uVar37" ! (cast_expression "(bool)uVar37" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      sVar15 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar22 = _Var26._M_p + sVar15;\n    }" { (expression_statement "sVar15 = strlen(src_section_name._M_dataplus._M_p);" (assignment_expression "sVar15 = strlen(src_section_name._M_dataplus._M_p)" identifier = (call_expression "strlen(src_section_name._M_dataplus._M_p)" identifier (argument_list "(src_section_name._M_dataplus._M_p)" ( (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier) )))) ;) (expression_statement "pcVar22 = _Var26._M_p + sVar15;" (assignment_expression "pcVar22 = _Var26._M_p + sVar15" identifier = (binary_expression "_Var26._M_p + sVar15" (field_expression "_Var26._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               _Var26._M_p,pcVar22);" 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               _Var26._M_p,pcVar22);" (binary_expression "_M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var26._M_p,pcVar22)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var26._M_p,pcVar22)" ( (comma_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var26._M_p,pcVar22" (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 "_Var26._M_p,pcVar22" (field_expression "_Var26._M_p" identifier . field_identifier) , identifier)) ))) ;)) (expression_statement "lVar20 = 5;" (assignment_expression "lVar20 = 5" identifier = number_literal) ;) (expression_statement "pbVar24 = (byte *)".text";" (assignment_expression "pbVar24 = (byte *)".text"" identifier = (cast_expression "(byte *)".text"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".text"" " string_content "))) ;) (expression_statement "pRVar27 = src_id.first;" (assignment_expression "pRVar27 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n      uVar33 = *pbVar24 < bVar29;\n      uVar37 = *pbVar24 == bVar29;\n      pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n      pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n    } while ((bool)uVar37);" do (compound_statement "{\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n      uVar33 = *pbVar24 < bVar29;\n      uVar37 = *pbVar24 == bVar29;\n      pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n      pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n    }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;" (assignment_expression "bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar27->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar27->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar27->super_Object)._vptr_Object" & (field_expression "(pRVar27->super_Object)._vptr_Object" (parenthesized_expression "(pRVar27->super_Object)" ( (field_expression "pRVar27->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "uVar33 = *pbVar24 < bVar29;" (assignment_expression "uVar33 = *pbVar24 < bVar29" identifier = (binary_expression "*pbVar24 < bVar29" (pointer_expression "*pbVar24" * identifier) < identifier)) ;) (expression_statement "uVar37 = *pbVar24 == bVar29;" (assignment_expression "uVar37 = *pbVar24 == bVar29" identifier = (binary_expression "*pbVar24 == bVar29" (pointer_expression "*pbVar24" * identifier) == identifier)) ;) (expression_statement "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;" (assignment_expression "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1" identifier = (binary_expression "pbVar24 + (ulong)bVar39 * -2 + 1" (binary_expression "pbVar24 + (ulong)bVar39 * -2" identifier + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);" (assignment_expression "pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1)" identifier = (cast_expression "(Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pRVar27 + (ulong)bVar39 * -2 + 1)" ( (binary_expression "(long)pRVar27 + (ulong)bVar39 * -2 + 1" (binary_expression "(long)pRVar27 + (ulong)bVar39 * -2" (cast_expression "(long)pRVar27" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "((bool)uVar37)" ( (cast_expression "(bool)uVar37" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar35 = false;" (assignment_expression "bVar35 = false" identifier = false) ;) (expression_statement "bVar36 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;" (assignment_expression "bVar36 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33" identifier = (binary_expression "(!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33" (parenthesized_expression "(!(bool)uVar33 && !(bool)uVar37)" ( (binary_expression "!(bool)uVar33 && !(bool)uVar37" (unary_expression "!(bool)uVar33" ! (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar37" ! (cast_expression "(bool)uVar37" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar36) {\n      lVar20 = 0xf;\n      pbVar24 = (byte *)".gnu.linkonce.t";\n      pRVar27 = src_id.first;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n        bVar35 = *pbVar24 < bVar29;\n        bVar36 = *pbVar24 == bVar29;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n      } while (bVar36);\n      if ((!bVar35 && !bVar36) != bVar35) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00170ea5;\n      }\n    }" if (parenthesized_expression "(!bVar36)" ( (unary_expression "!bVar36" ! identifier) )) (compound_statement "{\n      lVar20 = 0xf;\n      pbVar24 = (byte *)".gnu.linkonce.t";\n      pRVar27 = src_id.first;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n        bVar35 = *pbVar24 < bVar29;\n        bVar36 = *pbVar24 == bVar29;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n      } while (bVar36);\n      if ((!bVar35 && !bVar36) != bVar35) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00170ea5;\n      }\n    }" { (expression_statement "lVar20 = 0xf;" (assignment_expression "lVar20 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar24 = (byte *)".gnu.linkonce.t";" (assignment_expression "pbVar24 = (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 "pRVar27 = src_id.first;" (assignment_expression "pRVar27 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n        bVar35 = *pbVar24 < bVar29;\n        bVar36 = *pbVar24 == bVar29;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n      } while (bVar36);" do (compound_statement "{\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;\n        bVar35 = *pbVar24 < bVar29;\n        bVar36 = *pbVar24 == bVar29;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);\n      }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object;" (assignment_expression "bVar29 = *(byte *)&(pRVar27->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar27->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar27->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar27->super_Object)._vptr_Object" & (field_expression "(pRVar27->super_Object)._vptr_Object" (parenthesized_expression "(pRVar27->super_Object)" ( (field_expression "pRVar27->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar35 = *pbVar24 < bVar29;" (assignment_expression "bVar35 = *pbVar24 < bVar29" identifier = (binary_expression "*pbVar24 < bVar29" (pointer_expression "*pbVar24" * identifier) < identifier)) ;) (expression_statement "bVar36 = *pbVar24 == bVar29;" (assignment_expression "bVar36 = *pbVar24 == bVar29" identifier = (binary_expression "*pbVar24 == bVar29" (pointer_expression "*pbVar24" * identifier) == identifier)) ;) (expression_statement "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;" (assignment_expression "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1" identifier = (binary_expression "pbVar24 + (ulong)bVar39 * -2 + 1" (binary_expression "pbVar24 + (ulong)bVar39 * -2" identifier + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1);" (assignment_expression "pRVar27 = (Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1)" identifier = (cast_expression "(Relobj *)((long)pRVar27 + (ulong)bVar39 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pRVar27 + (ulong)bVar39 * -2 + 1)" ( (binary_expression "(long)pRVar27 + (ulong)bVar39 * -2 + 1" (binary_expression "(long)pRVar27 + (ulong)bVar39 * -2" (cast_expression "(long)pRVar27" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar36)" ( identifier )) ;) (if_statement "if ((!bVar35 && !bVar36) != bVar35) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00170ea5;\n      }" if (parenthesized_expression "((!bVar35 && !bVar36) != bVar35)" ( (binary_expression "(!bVar35 && !bVar36) != bVar35" (parenthesized_expression "(!bVar35 && !bVar36)" ( (binary_expression "!bVar35 && !bVar36" (unary_expression "!bVar35" ! identifier) && (unary_expression "!bVar36" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00170ea5;\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_00170ea5;" 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 = uVar19;" (assignment_expression "src_id.second = uVar19" (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_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_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_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 "bVar35 = true;" (assignment_expression "bVar35 = true" identifier = true) ;) }))) (if_statement "if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if ((parameters->options_->icf_status_ == ICF_SAFE) &&\n     (cVar10 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar10 != '\0')) {\n    pcVar8 = *(code **)(*(long *)param_2 + 0x10);\n    if (pcVar8 != Target::section_may_have_icf_unsafe_pointers) {\n                    /* try { // try from 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00170f04;\n    }\n    pcVar8 = *(code **)(*(long *)param_2 + 0x98);\n    bVar36 = pcVar8 < Target::do_section_may_have_icf_unsafe_pointers;\n    bVar38 = pcVar8 == Target::do_section_may_have_icf_unsafe_pointers;\n    if (!bVar38) {\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar24 = (byte *)".rodata._ZTV";\n    _Var26 = src_section_name._M_dataplus;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar36 = *pbVar24 < (byte)*_Var26._M_p;\n      bVar38 = *pbVar24 == *_Var26._M_p;\n      pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n      _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n    } while (bVar38);\n    bVar34 = false;\n    bVar36 = (!bVar36 && !bVar38) == bVar36;\n    if (!bVar36) {\n      lVar20 = 0x11;\n      pbVar24 = (byte *)".data.rel.ro._ZTV";\n      _Var26 = src_section_name._M_dataplus;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n        bVar36 = *pbVar24 == *_Var26._M_p;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n      } while (bVar36);\n      bVar38 = false;\n      bVar36 = (!bVar34 && !bVar36) == bVar34;\n      if (!bVar36) {\n        lVar20 = 0xc;\n        pbVar24 = (byte *)".rodata._ZTC";\n        _Var26 = src_section_name._M_dataplus;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n          bVar36 = *pbVar24 == *_Var26._M_p;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar34 = false;\n        bVar36 = (!bVar38 && !bVar36) == bVar38;\n        if (!bVar36) {\n          lVar20 = 0x11;\n          pbVar24 = (byte *)".data.rel.ro._ZTC";\n          _Var26 = src_section_name._M_dataplus;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n            bVar36 = *pbVar24 == *_Var26._M_p;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar38 = false;\n          bVar36 = (!bVar34 && !bVar36) == bVar34;\n          if (!bVar36) {\n            lVar20 = 9;\n            pbVar24 = (byte *)".eh_frame";\n            _Var26 = src_section_name._M_dataplus;\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n              bVar36 = *pbVar24 == *_Var26._M_p;\n              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n            } while (bVar36);\n            local_135 = (!bVar38 && !bVar36) != bVar38;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((parameters->options_->icf_status_ == ICF_SAFE) &&\n     (cVar10 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar10 != '\0'))" ( (binary_expression "(parameters->options_->icf_status_ == ICF_SAFE) &&\n     (cVar10 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar10 != '\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 "(cVar10 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar10 != '\0')" ( (comma_expression "cVar10 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar10 != '\0'" (assignment_expression "cVar10 = (**(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 "cVar10 != '\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 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00170f04;\n    }\n    pcVar8 = *(code **)(*(long *)param_2 + 0x98);\n    bVar36 = pcVar8 < Target::do_section_may_have_icf_unsafe_pointers;\n    bVar38 = pcVar8 == Target::do_section_may_have_icf_unsafe_pointers;\n    if (!bVar38) {\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar24 = (byte *)".rodata._ZTV";\n    _Var26 = src_section_name._M_dataplus;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar36 = *pbVar24 < (byte)*_Var26._M_p;\n      bVar38 = *pbVar24 == *_Var26._M_p;\n      pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n      _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n    } while (bVar38);\n    bVar34 = false;\n    bVar36 = (!bVar36 && !bVar38) == bVar36;\n    if (!bVar36) {\n      lVar20 = 0x11;\n      pbVar24 = (byte *)".data.rel.ro._ZTV";\n      _Var26 = src_section_name._M_dataplus;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n        bVar36 = *pbVar24 == *_Var26._M_p;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n      } while (bVar36);\n      bVar38 = false;\n      bVar36 = (!bVar34 && !bVar36) == bVar34;\n      if (!bVar36) {\n        lVar20 = 0xc;\n        pbVar24 = (byte *)".rodata._ZTC";\n        _Var26 = src_section_name._M_dataplus;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n          bVar36 = *pbVar24 == *_Var26._M_p;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar34 = false;\n        bVar36 = (!bVar38 && !bVar36) == bVar38;\n        if (!bVar36) {\n          lVar20 = 0x11;\n          pbVar24 = (byte *)".data.rel.ro._ZTC";\n          _Var26 = src_section_name._M_dataplus;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n            bVar36 = *pbVar24 == *_Var26._M_p;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar38 = false;\n          bVar36 = (!bVar34 && !bVar36) == bVar34;\n          if (!bVar36) {\n            lVar20 = 9;\n            pbVar24 = (byte *)".eh_frame";\n            _Var26 = src_section_name._M_dataplus;\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n              bVar36 = *pbVar24 == *_Var26._M_p;\n              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n            } while (bVar36);\n            local_135 = (!bVar38 && !bVar36) != bVar38;\n            goto LAB_00170f04;\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 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00170f04;\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 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00170f04;\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_00170f04;" 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 "bVar36 = pcVar8 < Target::" (assignment_expression "bVar36 = pcVar8 < Target" identifier = (binary_expression "pcVar8 < Target" identifier < identifier)) : :) (expression_statement "do_section_may_have_icf_unsafe_pointers;" identifier ;) (ERROR "bVar38 = pcVar8 == Target::" (assignment_expression "bVar38 = pcVar8 == Target" identifier = (binary_expression "pcVar8 == Target" identifier == identifier)) : :) (expression_statement "do_section_may_have_icf_unsafe_pointers;" identifier ;) (if_statement "if (!bVar38) {\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00170f04;\n    }" if (parenthesized_expression "(!bVar38)" ( (unary_expression "!bVar38" ! identifier) )) (compound_statement "{\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00170f04;\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_00170f04;" goto statement_identifier ;) })) (expression_statement "lVar20 = 0xc;" (assignment_expression "lVar20 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar24 = (byte *)".rodata._ZTV";" (assignment_expression "pbVar24 = (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 "_Var26 = src_section_name._M_dataplus;" (assignment_expression "_Var26 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar36 = *pbVar24 < (byte)*_Var26._M_p;\n      bVar38 = *pbVar24 == *_Var26._M_p;\n      pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n      _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n    } while (bVar38);" do (compound_statement "{\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar36 = *pbVar24 < (byte)*_Var26._M_p;\n      bVar38 = *pbVar24 == *_Var26._M_p;\n      pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n      _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n    }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar36 = *pbVar24 < (byte)*_Var26._M_p;" (assignment_expression "bVar36 = *pbVar24 < (byte)*_Var26._M_p" identifier = (binary_expression "*pbVar24 < (byte)*_Var26._M_p" (pointer_expression "*pbVar24" * identifier) < (binary_expression "(byte)*_Var26._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var26._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar38 = *pbVar24 == *_Var26._M_p;" (assignment_expression "bVar38 = *pbVar24 == *_Var26._M_p" identifier = (binary_expression "*pbVar24 == *_Var26._M_p" (pointer_expression "*pbVar24" * identifier) == (pointer_expression "*_Var26._M_p" * (field_expression "_Var26._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;" (assignment_expression "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1" identifier = (binary_expression "pbVar24 + (ulong)bVar39 * -2 + 1" (binary_expression "pbVar24 + (ulong)bVar39 * -2" identifier + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);" (assignment_expression "_Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" (field_expression "_Var26._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" ( (binary_expression "(byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1" (binary_expression "(byte *)_Var26._M_p + (ulong)bVar39 * -2" (cast_expression "(byte *)_Var26._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar38)" ( identifier )) ;) (expression_statement "bVar34 = false;" (assignment_expression "bVar34 = false" identifier = false) ;) (expression_statement "bVar36 = (!bVar36 && !bVar38) == bVar36;" (assignment_expression "bVar36 = (!bVar36 && !bVar38) == bVar36" identifier = (binary_expression "(!bVar36 && !bVar38) == bVar36" (parenthesized_expression "(!bVar36 && !bVar38)" ( (binary_expression "!bVar36 && !bVar38" (unary_expression "!bVar36" ! identifier) && (unary_expression "!bVar38" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar36) {\n      lVar20 = 0x11;\n      pbVar24 = (byte *)".data.rel.ro._ZTV";\n      _Var26 = src_section_name._M_dataplus;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n        bVar36 = *pbVar24 == *_Var26._M_p;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n      } while (bVar36);\n      bVar38 = false;\n      bVar36 = (!bVar34 && !bVar36) == bVar34;\n      if (!bVar36) {\n        lVar20 = 0xc;\n        pbVar24 = (byte *)".rodata._ZTC";\n        _Var26 = src_section_name._M_dataplus;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n          bVar36 = *pbVar24 == *_Var26._M_p;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar34 = false;\n        bVar36 = (!bVar38 && !bVar36) == bVar38;\n        if (!bVar36) {\n          lVar20 = 0x11;\n          pbVar24 = (byte *)".data.rel.ro._ZTC";\n          _Var26 = src_section_name._M_dataplus;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n            bVar36 = *pbVar24 == *_Var26._M_p;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar38 = false;\n          bVar36 = (!bVar34 && !bVar36) == bVar34;\n          if (!bVar36) {\n            lVar20 = 9;\n            pbVar24 = (byte *)".eh_frame";\n            _Var26 = src_section_name._M_dataplus;\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n              bVar36 = *pbVar24 == *_Var26._M_p;\n              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n            } while (bVar36);\n            local_135 = (!bVar38 && !bVar36) != bVar38;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar36)" ( (unary_expression "!bVar36" ! identifier) )) (compound_statement "{\n      lVar20 = 0x11;\n      pbVar24 = (byte *)".data.rel.ro._ZTV";\n      _Var26 = src_section_name._M_dataplus;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n        bVar36 = *pbVar24 == *_Var26._M_p;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n      } while (bVar36);\n      bVar38 = false;\n      bVar36 = (!bVar34 && !bVar36) == bVar34;\n      if (!bVar36) {\n        lVar20 = 0xc;\n        pbVar24 = (byte *)".rodata._ZTC";\n        _Var26 = src_section_name._M_dataplus;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n          bVar36 = *pbVar24 == *_Var26._M_p;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar34 = false;\n        bVar36 = (!bVar38 && !bVar36) == bVar38;\n        if (!bVar36) {\n          lVar20 = 0x11;\n          pbVar24 = (byte *)".data.rel.ro._ZTC";\n          _Var26 = src_section_name._M_dataplus;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n            bVar36 = *pbVar24 == *_Var26._M_p;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar38 = false;\n          bVar36 = (!bVar34 && !bVar36) == bVar34;\n          if (!bVar36) {\n            lVar20 = 9;\n            pbVar24 = (byte *)".eh_frame";\n            _Var26 = src_section_name._M_dataplus;\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n              bVar36 = *pbVar24 == *_Var26._M_p;\n              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n            } while (bVar36);\n            local_135 = (!bVar38 && !bVar36) != bVar38;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }" { (expression_statement "lVar20 = 0x11;" (assignment_expression "lVar20 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar24 = (byte *)".data.rel.ro._ZTV";" (assignment_expression "pbVar24 = (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 "_Var26 = src_section_name._M_dataplus;" (assignment_expression "_Var26 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n        bVar36 = *pbVar24 == *_Var26._M_p;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n      } while (bVar36);" do (compound_statement "{\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n        bVar36 = *pbVar24 == *_Var26._M_p;\n        pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n      }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar34 = *pbVar24 < (byte)*_Var26._M_p;" (assignment_expression "bVar34 = *pbVar24 < (byte)*_Var26._M_p" identifier = (binary_expression "*pbVar24 < (byte)*_Var26._M_p" (pointer_expression "*pbVar24" * identifier) < (binary_expression "(byte)*_Var26._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var26._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar36 = *pbVar24 == *_Var26._M_p;" (assignment_expression "bVar36 = *pbVar24 == *_Var26._M_p" identifier = (binary_expression "*pbVar24 == *_Var26._M_p" (pointer_expression "*pbVar24" * identifier) == (pointer_expression "*_Var26._M_p" * (field_expression "_Var26._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;" (assignment_expression "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1" identifier = (binary_expression "pbVar24 + (ulong)bVar39 * -2 + 1" (binary_expression "pbVar24 + (ulong)bVar39 * -2" identifier + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);" (assignment_expression "_Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" (field_expression "_Var26._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" ( (binary_expression "(byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1" (binary_expression "(byte *)_Var26._M_p + (ulong)bVar39 * -2" (cast_expression "(byte *)_Var26._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar36)" ( identifier )) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar36 = (!bVar34 && !bVar36) == bVar34;" (assignment_expression "bVar36 = (!bVar34 && !bVar36) == bVar34" identifier = (binary_expression "(!bVar34 && !bVar36) == bVar34" (parenthesized_expression "(!bVar34 && !bVar36)" ( (binary_expression "!bVar34 && !bVar36" (unary_expression "!bVar34" ! identifier) && (unary_expression "!bVar36" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar36) {\n        lVar20 = 0xc;\n        pbVar24 = (byte *)".rodata._ZTC";\n        _Var26 = src_section_name._M_dataplus;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n          bVar36 = *pbVar24 == *_Var26._M_p;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar34 = false;\n        bVar36 = (!bVar38 && !bVar36) == bVar38;\n        if (!bVar36) {\n          lVar20 = 0x11;\n          pbVar24 = (byte *)".data.rel.ro._ZTC";\n          _Var26 = src_section_name._M_dataplus;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n            bVar36 = *pbVar24 == *_Var26._M_p;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar38 = false;\n          bVar36 = (!bVar34 && !bVar36) == bVar34;\n          if (!bVar36) {\n            lVar20 = 9;\n            pbVar24 = (byte *)".eh_frame";\n            _Var26 = src_section_name._M_dataplus;\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n              bVar36 = *pbVar24 == *_Var26._M_p;\n              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n            } while (bVar36);\n            local_135 = (!bVar38 && !bVar36) != bVar38;\n            goto LAB_00170f04;\n          }\n        }\n      }" if (parenthesized_expression "(!bVar36)" ( (unary_expression "!bVar36" ! identifier) )) (compound_statement "{\n        lVar20 = 0xc;\n        pbVar24 = (byte *)".rodata._ZTC";\n        _Var26 = src_section_name._M_dataplus;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n          bVar36 = *pbVar24 == *_Var26._M_p;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar34 = false;\n        bVar36 = (!bVar38 && !bVar36) == bVar38;\n        if (!bVar36) {\n          lVar20 = 0x11;\n          pbVar24 = (byte *)".data.rel.ro._ZTC";\n          _Var26 = src_section_name._M_dataplus;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n            bVar36 = *pbVar24 == *_Var26._M_p;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar38 = false;\n          bVar36 = (!bVar34 && !bVar36) == bVar34;\n          if (!bVar36) {\n            lVar20 = 9;\n            pbVar24 = (byte *)".eh_frame";\n            _Var26 = src_section_name._M_dataplus;\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n              bVar36 = *pbVar24 == *_Var26._M_p;\n              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n            } while (bVar36);\n            local_135 = (!bVar38 && !bVar36) != bVar38;\n            goto LAB_00170f04;\n          }\n        }\n      }" { (expression_statement "lVar20 = 0xc;" (assignment_expression "lVar20 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar24 = (byte *)".rodata._ZTC";" (assignment_expression "pbVar24 = (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 "_Var26 = src_section_name._M_dataplus;" (assignment_expression "_Var26 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n          bVar36 = *pbVar24 == *_Var26._M_p;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n        } while (bVar36);" do (compound_statement "{\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n          bVar36 = *pbVar24 == *_Var26._M_p;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n        }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar24 < (byte)*_Var26._M_p;" (assignment_expression "bVar38 = *pbVar24 < (byte)*_Var26._M_p" identifier = (binary_expression "*pbVar24 < (byte)*_Var26._M_p" (pointer_expression "*pbVar24" * identifier) < (binary_expression "(byte)*_Var26._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var26._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar36 = *pbVar24 == *_Var26._M_p;" (assignment_expression "bVar36 = *pbVar24 == *_Var26._M_p" identifier = (binary_expression "*pbVar24 == *_Var26._M_p" (pointer_expression "*pbVar24" * identifier) == (pointer_expression "*_Var26._M_p" * (field_expression "_Var26._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;" (assignment_expression "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1" identifier = (binary_expression "pbVar24 + (ulong)bVar39 * -2 + 1" (binary_expression "pbVar24 + (ulong)bVar39 * -2" identifier + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);" (assignment_expression "_Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" (field_expression "_Var26._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" ( (binary_expression "(byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1" (binary_expression "(byte *)_Var26._M_p + (ulong)bVar39 * -2" (cast_expression "(byte *)_Var26._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar36)" ( identifier )) ;) (expression_statement "bVar34 = false;" (assignment_expression "bVar34 = false" identifier = false) ;) (expression_statement "bVar36 = (!bVar38 && !bVar36) == bVar38;" (assignment_expression "bVar36 = (!bVar38 && !bVar36) == bVar38" identifier = (binary_expression "(!bVar38 && !bVar36) == bVar38" (parenthesized_expression "(!bVar38 && !bVar36)" ( (binary_expression "!bVar38 && !bVar36" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar36" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar36) {\n          lVar20 = 0x11;\n          pbVar24 = (byte *)".data.rel.ro._ZTC";\n          _Var26 = src_section_name._M_dataplus;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n            bVar36 = *pbVar24 == *_Var26._M_p;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar38 = false;\n          bVar36 = (!bVar34 && !bVar36) == bVar34;\n          if (!bVar36) {\n            lVar20 = 9;\n            pbVar24 = (byte *)".eh_frame";\n            _Var26 = src_section_name._M_dataplus;\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n              bVar36 = *pbVar24 == *_Var26._M_p;\n              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n            } while (bVar36);\n            local_135 = (!bVar38 && !bVar36) != bVar38;\n            goto LAB_00170f04;\n          }\n        }" if (parenthesized_expression "(!bVar36)" ( (unary_expression "!bVar36" ! identifier) )) (compound_statement "{\n          lVar20 = 0x11;\n          pbVar24 = (byte *)".data.rel.ro._ZTC";\n          _Var26 = src_section_name._M_dataplus;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n            bVar36 = *pbVar24 == *_Var26._M_p;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar38 = false;\n          bVar36 = (!bVar34 && !bVar36) == bVar34;\n          if (!bVar36) {\n            lVar20 = 9;\n            pbVar24 = (byte *)".eh_frame";\n            _Var26 = src_section_name._M_dataplus;\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n              bVar36 = *pbVar24 == *_Var26._M_p;\n              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n            } while (bVar36);\n            local_135 = (!bVar38 && !bVar36) != bVar38;\n            goto LAB_00170f04;\n          }\n        }" { (expression_statement "lVar20 = 0x11;" (assignment_expression "lVar20 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar24 = (byte *)".data.rel.ro._ZTC";" (assignment_expression "pbVar24 = (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 "_Var26 = src_section_name._M_dataplus;" (assignment_expression "_Var26 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n            bVar36 = *pbVar24 == *_Var26._M_p;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n          } while (bVar36);" do (compound_statement "{\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar34 = *pbVar24 < (byte)*_Var26._M_p;\n            bVar36 = *pbVar24 == *_Var26._M_p;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n          }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar34 = *pbVar24 < (byte)*_Var26._M_p;" (assignment_expression "bVar34 = *pbVar24 < (byte)*_Var26._M_p" identifier = (binary_expression "*pbVar24 < (byte)*_Var26._M_p" (pointer_expression "*pbVar24" * identifier) < (binary_expression "(byte)*_Var26._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var26._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar36 = *pbVar24 == *_Var26._M_p;" (assignment_expression "bVar36 = *pbVar24 == *_Var26._M_p" identifier = (binary_expression "*pbVar24 == *_Var26._M_p" (pointer_expression "*pbVar24" * identifier) == (pointer_expression "*_Var26._M_p" * (field_expression "_Var26._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;" (assignment_expression "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1" identifier = (binary_expression "pbVar24 + (ulong)bVar39 * -2 + 1" (binary_expression "pbVar24 + (ulong)bVar39 * -2" identifier + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);" (assignment_expression "_Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" (field_expression "_Var26._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" ( (binary_expression "(byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1" (binary_expression "(byte *)_Var26._M_p + (ulong)bVar39 * -2" (cast_expression "(byte *)_Var26._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar36)" ( identifier )) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar36 = (!bVar34 && !bVar36) == bVar34;" (assignment_expression "bVar36 = (!bVar34 && !bVar36) == bVar34" identifier = (binary_expression "(!bVar34 && !bVar36) == bVar34" (parenthesized_expression "(!bVar34 && !bVar36)" ( (binary_expression "!bVar34 && !bVar36" (unary_expression "!bVar34" ! identifier) && (unary_expression "!bVar36" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar36) {\n            lVar20 = 9;\n            pbVar24 = (byte *)".eh_frame";\n            _Var26 = src_section_name._M_dataplus;\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n              bVar36 = *pbVar24 == *_Var26._M_p;\n              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n            } while (bVar36);\n            local_135 = (!bVar38 && !bVar36) != bVar38;\n            goto LAB_00170f04;\n          }" if (parenthesized_expression "(!bVar36)" ( (unary_expression "!bVar36" ! identifier) )) (compound_statement "{\n            lVar20 = 9;\n            pbVar24 = (byte *)".eh_frame";\n            _Var26 = src_section_name._M_dataplus;\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n              bVar36 = *pbVar24 == *_Var26._M_p;\n              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n            } while (bVar36);\n            local_135 = (!bVar38 && !bVar36) != bVar38;\n            goto LAB_00170f04;\n          }" { (expression_statement "lVar20 = 9;" (assignment_expression "lVar20 = 9" identifier = number_literal) ;) (expression_statement "pbVar24 = (byte *)".eh_frame";" (assignment_expression "pbVar24 = (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 "_Var26 = src_section_name._M_dataplus;" (assignment_expression "_Var26 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n              bVar36 = *pbVar24 == *_Var26._M_p;\n              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n            } while (bVar36);" do (compound_statement "{\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar38 = *pbVar24 < (byte)*_Var26._M_p;\n              bVar36 = *pbVar24 == *_Var26._M_p;\n              pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n              _Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);\n            }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar24 < (byte)*_Var26._M_p;" (assignment_expression "bVar38 = *pbVar24 < (byte)*_Var26._M_p" identifier = (binary_expression "*pbVar24 < (byte)*_Var26._M_p" (pointer_expression "*pbVar24" * identifier) < (binary_expression "(byte)*_Var26._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var26._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar36 = *pbVar24 == *_Var26._M_p;" (assignment_expression "bVar36 = *pbVar24 == *_Var26._M_p" identifier = (binary_expression "*pbVar24 == *_Var26._M_p" (pointer_expression "*pbVar24" * identifier) == (pointer_expression "*_Var26._M_p" * (field_expression "_Var26._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;" (assignment_expression "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1" identifier = (binary_expression "pbVar24 + (ulong)bVar39 * -2 + 1" (binary_expression "pbVar24 + (ulong)bVar39 * -2" identifier + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1);" (assignment_expression "_Var26._M_p = (pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" (field_expression "_Var26._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1)" ( (binary_expression "(byte *)_Var26._M_p + (ulong)bVar39 * -2 + 1" (binary_expression "(byte *)_Var26._M_p + (ulong)bVar39 * -2" (cast_expression "(byte *)_Var26._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar36)" ( identifier )) ;) (expression_statement "local_135 = (!bVar38 && !bVar36) != bVar38;" (assignment_expression "local_135 = (!bVar38 && !bVar36) != bVar38" identifier = (binary_expression "(!bVar38 && !bVar36) != bVar38" (parenthesized_expression "(!bVar38 && !bVar36)" ( (binary_expression "!bVar38 && !bVar36" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar36" ! identifier)) )) != identifier)) ;) (goto_statement "goto LAB_00170f04;" goto statement_identifier ;) })) })) })) })) })) (expression_statement "local_135 = '\0';" (assignment_expression "local_135 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_00170f04:\n  if (prelocs != (uchar *)0x0) {\n    local_140 = (_func_int_varargs **)0x0;\n    local_100 = (uchar *)0x0;\n    do {\n      uVar11 = puVar28[1];\n      uVar9 = uVar11 >> 0x18;\n      uVar30 = puVar28[2];\n      uVar31 = ((uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18) >> 8;\n      uVar11 = uVar30 >> 0x18 | (uVar30 & 0xff0000) >> 8 | (uVar30 & 0xff00) << 8 | uVar30 << 0x18;\n      if (uVar31 < 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        uVar30 = uVar31 << 4;\n        uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n        uVar23 = uVar23 << 8 | uVar23 >> 8;\n        uVar12 = (uint)uVar23;\n        if (uVar23 < 0xff00) {\nLAB_001710c0:\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (bVar35) {\n            src_id.second = uVar12;\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            bVar36 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3) goto LAB_00171112;\nLAB_00170fb2:\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_00170fcd;\n          }\n        }\n        else {\n          if (uVar23 == 0xffff) {\n            this = (Xindex *)(target->s390_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }\n            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);\n            goto LAB_001710c0;\n          }\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (!bVar35) goto LAB_00171042;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\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          bVar36 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3) goto LAB_00170fb2;\nLAB_00171112:\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_00170fcd:\n          src_id.first = (Relobj *)(ulong)uVar31;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (!bVar36) goto LAB_00171042;\n        }\n        local_118 = (Output_segment *)target;\n        if ((local_135 == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) == 1\n           )) {\nLAB_001711d0:\n          if (uVar19 != uVar12) goto LAB_001711e3;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))) {\n            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_001711d0;\n          }\n          if (uVar19 == uVar12) goto LAB_00171042;\nLAB_001711f7:\n          if ((pGVar13->gc_sections_).value != false) {\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar31 < target[1].got_mod_index_offset_) {\n          dst_id.first = (Relobj *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar32 = (ulong)(uVar31 - target[1].got_mod_index_offset_);\n        if ((ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)\n            <= uVar32) {\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].s390_info + uVar32 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_001716a8;\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          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          local_118 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_12c = uVar11 + uVar30;\n          if (((ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar33 = bVar21 < 2;\n            uVar37 = bVar21 == 2;\n            if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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          }\n          else {\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }\n        }\n        else {\n          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          bVar29 = 0;\n          local_118 = (Output_segment *)0x0;\n          local_12c = uVar11 + uVar30;\n          uVar33 = 0;\n          uVar12 = 0;\n          uVar37 = 1;\n        }\nLAB_001714f0:\n        pp_Var7 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar20 = 8;\n        pbVar24 = (byte *)"__start_";\n        pp_Var25 = pp_Var7;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar33 = *pbVar24 < *(byte *)pp_Var25;\n          uVar37 = *pbVar24 == *(byte *)pp_Var25;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n        } while ((bool)uVar37);\n        bVar36 = false;\n        bVar38 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;\n        if (bVar38) {\n          pp_Var7 = pp_Var7 + 1;\n        }\n        else {\n          lVar20 = 7;\n          pbVar24 = (byte *)"__stop_";\n          pp_Var25 = pp_Var7;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          } while (bVar38);\n          pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);\n          if ((!bVar36 && !bVar38) != bVar36) {\n            pp_Var7 = local_140;\n          }\n        }\n        local_140 = pp_Var7;\n        if (bVar35) {\n          if (bVar29 == 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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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 = (Relobj *)(ulong)uVar30;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (bVar29 != 0) {\nLAB_001711e3:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\n      local_100 = local_100 + 1;\n      puVar28 = puVar28 + 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      uVar11 = puVar28[1];\n      uVar9 = uVar11 >> 0x18;\n      uVar30 = puVar28[2];\n      uVar31 = ((uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18) >> 8;\n      uVar11 = uVar30 >> 0x18 | (uVar30 & 0xff0000) >> 8 | (uVar30 & 0xff00) << 8 | uVar30 << 0x18;\n      if (uVar31 < 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        uVar30 = uVar31 << 4;\n        uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n        uVar23 = uVar23 << 8 | uVar23 >> 8;\n        uVar12 = (uint)uVar23;\n        if (uVar23 < 0xff00) {\nLAB_001710c0:\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (bVar35) {\n            src_id.second = uVar12;\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            bVar36 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3) goto LAB_00171112;\nLAB_00170fb2:\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_00170fcd;\n          }\n        }\n        else {\n          if (uVar23 == 0xffff) {\n            this = (Xindex *)(target->s390_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }\n            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);\n            goto LAB_001710c0;\n          }\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (!bVar35) goto LAB_00171042;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\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          bVar36 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3) goto LAB_00170fb2;\nLAB_00171112:\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_00170fcd:\n          src_id.first = (Relobj *)(ulong)uVar31;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (!bVar36) goto LAB_00171042;\n        }\n        local_118 = (Output_segment *)target;\n        if ((local_135 == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) == 1\n           )) {\nLAB_001711d0:\n          if (uVar19 != uVar12) goto LAB_001711e3;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))) {\n            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_001711d0;\n          }\n          if (uVar19 == uVar12) goto LAB_00171042;\nLAB_001711f7:\n          if ((pGVar13->gc_sections_).value != false) {\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar31 < target[1].got_mod_index_offset_) {\n          dst_id.first = (Relobj *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar32 = (ulong)(uVar31 - target[1].got_mod_index_offset_);\n        if ((ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)\n            <= uVar32) {\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].s390_info + uVar32 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_001716a8;\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          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          local_118 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_12c = uVar11 + uVar30;\n          if (((ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar33 = bVar21 < 2;\n            uVar37 = bVar21 == 2;\n            if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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          }\n          else {\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }\n        }\n        else {\n          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          bVar29 = 0;\n          local_118 = (Output_segment *)0x0;\n          local_12c = uVar11 + uVar30;\n          uVar33 = 0;\n          uVar12 = 0;\n          uVar37 = 1;\n        }\nLAB_001714f0:\n        pp_Var7 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar20 = 8;\n        pbVar24 = (byte *)"__start_";\n        pp_Var25 = pp_Var7;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar33 = *pbVar24 < *(byte *)pp_Var25;\n          uVar37 = *pbVar24 == *(byte *)pp_Var25;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n        } while ((bool)uVar37);\n        bVar36 = false;\n        bVar38 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;\n        if (bVar38) {\n          pp_Var7 = pp_Var7 + 1;\n        }\n        else {\n          lVar20 = 7;\n          pbVar24 = (byte *)"__stop_";\n          pp_Var25 = pp_Var7;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          } while (bVar38);\n          pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);\n          if ((!bVar36 && !bVar38) != bVar36) {\n            pp_Var7 = local_140;\n          }\n        }\n        local_140 = pp_Var7;\n        if (bVar35) {\n          if (bVar29 == 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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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 = (Relobj *)(ulong)uVar30;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (bVar29 != 0) {\nLAB_001711e3:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\n      local_100 = local_100 + 1;\n      puVar28 = puVar28 + 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      uVar11 = puVar28[1];\n      uVar9 = uVar11 >> 0x18;\n      uVar30 = puVar28[2];\n      uVar31 = ((uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18) >> 8;\n      uVar11 = uVar30 >> 0x18 | (uVar30 & 0xff0000) >> 8 | (uVar30 & 0xff00) << 8 | uVar30 << 0x18;\n      if (uVar31 < 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        uVar30 = uVar31 << 4;\n        uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n        uVar23 = uVar23 << 8 | uVar23 >> 8;\n        uVar12 = (uint)uVar23;\n        if (uVar23 < 0xff00) {\nLAB_001710c0:\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (bVar35) {\n            src_id.second = uVar12;\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            bVar36 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3) goto LAB_00171112;\nLAB_00170fb2:\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_00170fcd;\n          }\n        }\n        else {\n          if (uVar23 == 0xffff) {\n            this = (Xindex *)(target->s390_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }\n            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);\n            goto LAB_001710c0;\n          }\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (!bVar35) goto LAB_00171042;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\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          bVar36 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3) goto LAB_00170fb2;\nLAB_00171112:\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_00170fcd:\n          src_id.first = (Relobj *)(ulong)uVar31;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (!bVar36) goto LAB_00171042;\n        }\n        local_118 = (Output_segment *)target;\n        if ((local_135 == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) == 1\n           )) {\nLAB_001711d0:\n          if (uVar19 != uVar12) goto LAB_001711e3;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))) {\n            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_001711d0;\n          }\n          if (uVar19 == uVar12) goto LAB_00171042;\nLAB_001711f7:\n          if ((pGVar13->gc_sections_).value != false) {\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar31 < target[1].got_mod_index_offset_) {\n          dst_id.first = (Relobj *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar32 = (ulong)(uVar31 - target[1].got_mod_index_offset_);\n        if ((ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)\n            <= uVar32) {\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].s390_info + uVar32 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_001716a8;\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          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          local_118 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_12c = uVar11 + uVar30;\n          if (((ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar33 = bVar21 < 2;\n            uVar37 = bVar21 == 2;\n            if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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          }\n          else {\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }\n        }\n        else {\n          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          bVar29 = 0;\n          local_118 = (Output_segment *)0x0;\n          local_12c = uVar11 + uVar30;\n          uVar33 = 0;\n          uVar12 = 0;\n          uVar37 = 1;\n        }\nLAB_001714f0:\n        pp_Var7 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar20 = 8;\n        pbVar24 = (byte *)"__start_";\n        pp_Var25 = pp_Var7;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar33 = *pbVar24 < *(byte *)pp_Var25;\n          uVar37 = *pbVar24 == *(byte *)pp_Var25;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n        } while ((bool)uVar37);\n        bVar36 = false;\n        bVar38 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;\n        if (bVar38) {\n          pp_Var7 = pp_Var7 + 1;\n        }\n        else {\n          lVar20 = 7;\n          pbVar24 = (byte *)"__stop_";\n          pp_Var25 = pp_Var7;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          } while (bVar38);\n          pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);\n          if ((!bVar36 && !bVar38) != bVar36) {\n            pp_Var7 = local_140;\n          }\n        }\n        local_140 = pp_Var7;\n        if (bVar35) {\n          if (bVar29 == 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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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 = (Relobj *)(ulong)uVar30;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (bVar29 != 0) {\nLAB_001711e3:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\n      local_100 = local_100 + 1;\n      puVar28 = puVar28 + 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      uVar11 = puVar28[1];\n      uVar9 = uVar11 >> 0x18;\n      uVar30 = puVar28[2];\n      uVar31 = ((uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18) >> 8;\n      uVar11 = uVar30 >> 0x18 | (uVar30 & 0xff0000) >> 8 | (uVar30 & 0xff00) << 8 | uVar30 << 0x18;\n      if (uVar31 < 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        uVar30 = uVar31 << 4;\n        uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n        uVar23 = uVar23 << 8 | uVar23 >> 8;\n        uVar12 = (uint)uVar23;\n        if (uVar23 < 0xff00) {\nLAB_001710c0:\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (bVar35) {\n            src_id.second = uVar12;\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            bVar36 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3) goto LAB_00171112;\nLAB_00170fb2:\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_00170fcd;\n          }\n        }\n        else {\n          if (uVar23 == 0xffff) {\n            this = (Xindex *)(target->s390_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }\n            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);\n            goto LAB_001710c0;\n          }\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (!bVar35) goto LAB_00171042;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\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          bVar36 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3) goto LAB_00170fb2;\nLAB_00171112:\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_00170fcd:\n          src_id.first = (Relobj *)(ulong)uVar31;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (!bVar36) goto LAB_00171042;\n        }\n        local_118 = (Output_segment *)target;\n        if ((local_135 == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) == 1\n           )) {\nLAB_001711d0:\n          if (uVar19 != uVar12) goto LAB_001711e3;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))) {\n            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_001711d0;\n          }\n          if (uVar19 == uVar12) goto LAB_00171042;\nLAB_001711f7:\n          if ((pGVar13->gc_sections_).value != false) {\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar31 < target[1].got_mod_index_offset_) {\n          dst_id.first = (Relobj *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar32 = (ulong)(uVar31 - target[1].got_mod_index_offset_);\n        if ((ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)\n            <= uVar32) {\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].s390_info + uVar32 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_001716a8;\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          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          local_118 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_12c = uVar11 + uVar30;\n          if (((ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar33 = bVar21 < 2;\n            uVar37 = bVar21 == 2;\n            if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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          }\n          else {\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }\n        }\n        else {\n          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          bVar29 = 0;\n          local_118 = (Output_segment *)0x0;\n          local_12c = uVar11 + uVar30;\n          uVar33 = 0;\n          uVar12 = 0;\n          uVar37 = 1;\n        }\nLAB_001714f0:\n        pp_Var7 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar20 = 8;\n        pbVar24 = (byte *)"__start_";\n        pp_Var25 = pp_Var7;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar33 = *pbVar24 < *(byte *)pp_Var25;\n          uVar37 = *pbVar24 == *(byte *)pp_Var25;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n        } while ((bool)uVar37);\n        bVar36 = false;\n        bVar38 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;\n        if (bVar38) {\n          pp_Var7 = pp_Var7 + 1;\n        }\n        else {\n          lVar20 = 7;\n          pbVar24 = (byte *)"__stop_";\n          pp_Var25 = pp_Var7;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          } while (bVar38);\n          pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);\n          if ((!bVar36 && !bVar38) != bVar36) {\n            pp_Var7 = local_140;\n          }\n        }\n        local_140 = pp_Var7;\n        if (bVar35) {\n          if (bVar29 == 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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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 = (Relobj *)(ulong)uVar30;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (bVar29 != 0) {\nLAB_001711e3:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\n      local_100 = local_100 + 1;\n      puVar28 = puVar28 + 3;\n    } while (prelocs != local_100);" do (compound_statement "{\n      uVar11 = puVar28[1];\n      uVar9 = uVar11 >> 0x18;\n      uVar30 = puVar28[2];\n      uVar31 = ((uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18) >> 8;\n      uVar11 = uVar30 >> 0x18 | (uVar30 & 0xff0000) >> 8 | (uVar30 & 0xff00) << 8 | uVar30 << 0x18;\n      if (uVar31 < 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        uVar30 = uVar31 << 4;\n        uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n        uVar23 = uVar23 << 8 | uVar23 >> 8;\n        uVar12 = (uint)uVar23;\n        if (uVar23 < 0xff00) {\nLAB_001710c0:\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (bVar35) {\n            src_id.second = uVar12;\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            bVar36 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3) goto LAB_00171112;\nLAB_00170fb2:\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_00170fcd;\n          }\n        }\n        else {\n          if (uVar23 == 0xffff) {\n            this = (Xindex *)(target->s390_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }\n            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);\n            goto LAB_001710c0;\n          }\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (!bVar35) goto LAB_00171042;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\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          bVar36 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3) goto LAB_00170fb2;\nLAB_00171112:\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_00170fcd:\n          src_id.first = (Relobj *)(ulong)uVar31;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (!bVar36) goto LAB_00171042;\n        }\n        local_118 = (Output_segment *)target;\n        if ((local_135 == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) == 1\n           )) {\nLAB_001711d0:\n          if (uVar19 != uVar12) goto LAB_001711e3;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))) {\n            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_001711d0;\n          }\n          if (uVar19 == uVar12) goto LAB_00171042;\nLAB_001711f7:\n          if ((pGVar13->gc_sections_).value != false) {\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar31 < target[1].got_mod_index_offset_) {\n          dst_id.first = (Relobj *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar32 = (ulong)(uVar31 - target[1].got_mod_index_offset_);\n        if ((ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)\n            <= uVar32) {\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].s390_info + uVar32 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_001716a8;\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          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          local_118 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_12c = uVar11 + uVar30;\n          if (((ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar33 = bVar21 < 2;\n            uVar37 = bVar21 == 2;\n            if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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          }\n          else {\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }\n        }\n        else {\n          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          bVar29 = 0;\n          local_118 = (Output_segment *)0x0;\n          local_12c = uVar11 + uVar30;\n          uVar33 = 0;\n          uVar12 = 0;\n          uVar37 = 1;\n        }\nLAB_001714f0:\n        pp_Var7 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar20 = 8;\n        pbVar24 = (byte *)"__start_";\n        pp_Var25 = pp_Var7;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar33 = *pbVar24 < *(byte *)pp_Var25;\n          uVar37 = *pbVar24 == *(byte *)pp_Var25;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n        } while ((bool)uVar37);\n        bVar36 = false;\n        bVar38 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;\n        if (bVar38) {\n          pp_Var7 = pp_Var7 + 1;\n        }\n        else {\n          lVar20 = 7;\n          pbVar24 = (byte *)"__stop_";\n          pp_Var25 = pp_Var7;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          } while (bVar38);\n          pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);\n          if ((!bVar36 && !bVar38) != bVar36) {\n            pp_Var7 = local_140;\n          }\n        }\n        local_140 = pp_Var7;\n        if (bVar35) {\n          if (bVar29 == 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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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 = (Relobj *)(ulong)uVar30;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (bVar29 != 0) {\nLAB_001711e3:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\n      local_100 = local_100 + 1;\n      puVar28 = puVar28 + 3;\n    }" { (expression_statement "uVar11 = puVar28[1];" (assignment_expression "uVar11 = puVar28[1]" identifier = (subscript_expression "puVar28[1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = uVar11 >> 0x18;" (assignment_expression "uVar9 = uVar11 >> 0x18" identifier = (binary_expression "uVar11 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar30 = puVar28[2];" (assignment_expression "uVar30 = puVar28[2]" identifier = (subscript_expression "puVar28[2]" identifier [ number_literal ])) ;) (expression_statement "uVar31 = ((uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18) >> 8;" (assignment_expression "uVar31 = ((uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18) >> 8" identifier = (binary_expression "((uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18) >> 8" (parenthesized_expression "((uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18)" ( (binary_expression "(uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18" (binary_expression "(uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8" (binary_expression "(uVar11 & 0xff0000) >> 8" (parenthesized_expression "(uVar11 & 0xff0000)" ( (binary_expression "uVar11 & 0xff0000" identifier & number_literal) )) >> number_literal) | (binary_expression "(uVar11 & 0xff00) << 8" (parenthesized_expression "(uVar11 & 0xff00)" ( (binary_expression "uVar11 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar11 << 0x18" identifier << number_literal)) )) >> number_literal)) ;) (expression_statement "uVar11 = uVar30 >> 0x18 | (uVar30 & 0xff0000) >> 8 | (uVar30 & 0xff00) << 8 | uVar30 << 0x18;" (assignment_expression "uVar11 = uVar30 >> 0x18 | (uVar30 & 0xff0000) >> 8 | (uVar30 & 0xff00) << 8 | uVar30 << 0x18" identifier = (binary_expression "uVar30 >> 0x18 | (uVar30 & 0xff0000) >> 8 | (uVar30 & 0xff00) << 8 | uVar30 << 0x18" (binary_expression "uVar30 >> 0x18 | (uVar30 & 0xff0000) >> 8 | (uVar30 & 0xff00) << 8" (binary_expression "uVar30 >> 0x18 | (uVar30 & 0xff0000) >> 8" (binary_expression "uVar30 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar30 & 0xff0000) >> 8" (parenthesized_expression "(uVar30 & 0xff0000)" ( (binary_expression "uVar30 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar30 & 0xff00) << 8" (parenthesized_expression "(uVar30 & 0xff00)" ( (binary_expression "uVar30 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar30 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar31 < 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        uVar30 = uVar31 << 4;\n        uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n        uVar23 = uVar23 << 8 | uVar23 >> 8;\n        uVar12 = (uint)uVar23;\n        if (uVar23 < 0xff00) {\nLAB_001710c0:\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (bVar35) {\n            src_id.second = uVar12;\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            bVar36 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3) goto LAB_00171112;\nLAB_00170fb2:\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_00170fcd;\n          }\n        }\n        else {\n          if (uVar23 == 0xffff) {\n            this = (Xindex *)(target->s390_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }\n            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);\n            goto LAB_001710c0;\n          }\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (!bVar35) goto LAB_00171042;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\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          bVar36 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3) goto LAB_00170fb2;\nLAB_00171112:\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_00170fcd:\n          src_id.first = (Relobj *)(ulong)uVar31;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (!bVar36) goto LAB_00171042;\n        }\n        local_118 = (Output_segment *)target;\n        if ((local_135 == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) == 1\n           )) {\nLAB_001711d0:\n          if (uVar19 != uVar12) goto LAB_001711e3;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))) {\n            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_001711d0;\n          }\n          if (uVar19 == uVar12) goto LAB_00171042;\nLAB_001711f7:\n          if ((pGVar13->gc_sections_).value != false) {\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar31 < target[1].got_mod_index_offset_) {\n          dst_id.first = (Relobj *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar32 = (ulong)(uVar31 - target[1].got_mod_index_offset_);\n        if ((ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)\n            <= uVar32) {\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].s390_info + uVar32 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_001716a8;\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          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          local_118 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_12c = uVar11 + uVar30;\n          if (((ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar33 = bVar21 < 2;\n            uVar37 = bVar21 == 2;\n            if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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          }\n          else {\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }\n        }\n        else {\n          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          bVar29 = 0;\n          local_118 = (Output_segment *)0x0;\n          local_12c = uVar11 + uVar30;\n          uVar33 = 0;\n          uVar12 = 0;\n          uVar37 = 1;\n        }\nLAB_001714f0:\n        pp_Var7 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar20 = 8;\n        pbVar24 = (byte *)"__start_";\n        pp_Var25 = pp_Var7;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar33 = *pbVar24 < *(byte *)pp_Var25;\n          uVar37 = *pbVar24 == *(byte *)pp_Var25;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n        } while ((bool)uVar37);\n        bVar36 = false;\n        bVar38 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;\n        if (bVar38) {\n          pp_Var7 = pp_Var7 + 1;\n        }\n        else {\n          lVar20 = 7;\n          pbVar24 = (byte *)"__stop_";\n          pp_Var25 = pp_Var7;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          } while (bVar38);\n          pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);\n          if ((!bVar36 && !bVar38) != bVar36) {\n            pp_Var7 = local_140;\n          }\n        }\n        local_140 = pp_Var7;\n        if (bVar35) {\n          if (bVar29 == 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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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 = (Relobj *)(ulong)uVar30;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (bVar29 != 0) {\nLAB_001711e3:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }" if (parenthesized_expression "(uVar31 < reloc_count)" ( (binary_expression "uVar31 < reloc_count" identifier < identifier) )) (compound_statement "{\n        if (param_8 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        uVar30 = uVar31 << 4;\n        uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n        uVar23 = uVar23 << 8 | uVar23 >> 8;\n        uVar12 = (uint)uVar23;\n        if (uVar23 < 0xff00) {\nLAB_001710c0:\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (bVar35) {\n            src_id.second = uVar12;\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            bVar36 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3) goto LAB_00171112;\nLAB_00170fb2:\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_00170fcd;\n          }\n        }\n        else {\n          if (uVar23 == 0xffff) {\n            this = (Xindex *)(target->s390_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }\n            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);\n            goto LAB_001710c0;\n          }\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (!bVar35) goto LAB_00171042;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\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          bVar36 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3) goto LAB_00170fb2;\nLAB_00171112:\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_00170fcd:\n          src_id.first = (Relobj *)(ulong)uVar31;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (!bVar36) goto LAB_00171042;\n        }\n        local_118 = (Output_segment *)target;\n        if ((local_135 == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) == 1\n           )) {\nLAB_001711d0:\n          if (uVar19 != uVar12) goto LAB_001711e3;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))) {\n            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_001711d0;\n          }\n          if (uVar19 == uVar12) goto LAB_00171042;\nLAB_001711f7:\n          if ((pGVar13->gc_sections_).value != false) {\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_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 "uVar30 = uVar31 << 4;" (assignment_expression "uVar30 = uVar31 << 4" identifier = (binary_expression "uVar31 << 4" identifier << number_literal)) ;) (expression_statement "uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);" (assignment_expression "uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6)" identifier = (pointer_expression "*(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6)" * (cast_expression "(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6)" ( (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6" (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar30" (cast_expression "(long)&(param_8->super_Output_data).address_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data).address_" & (field_expression "(param_8->super_Output_data).address_" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar30" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "uVar23 = uVar23 << 8 | uVar23 >> 8;" (assignment_expression "uVar23 = uVar23 << 8 | uVar23 >> 8" identifier = (binary_expression "uVar23 << 8 | uVar23 >> 8" (binary_expression "uVar23 << 8" identifier << number_literal) | (binary_expression "uVar23 >> 8" identifier >> number_literal))) ;) (expression_statement "uVar12 = (uint)uVar23;" (assignment_expression "uVar12 = (uint)uVar23" identifier = (cast_expression "(uint)uVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar23 < 0xff00) {\nLAB_001710c0:\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (bVar35) {\n            src_id.second = uVar12;\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            bVar36 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3) goto LAB_00171112;\nLAB_00170fb2:\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_00170fcd;\n          }\n        }\n        else {\n          if (uVar23 == 0xffff) {\n            this = (Xindex *)(target->s390_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }\n            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);\n            goto LAB_001710c0;\n          }\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (!bVar35) goto LAB_00171042;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\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          bVar36 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3) goto LAB_00170fb2;\nLAB_00171112:\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_00170fcd:\n          src_id.first = (Relobj *)(ulong)uVar31;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (!bVar36) goto LAB_00171042;\n        }" if (parenthesized_expression "(uVar23 < 0xff00)" ( (binary_expression "uVar23 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_001710c0:\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (bVar35) {\n            src_id.second = uVar12;\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            bVar36 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3) goto LAB_00171112;\nLAB_00170fb2:\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_00170fcd;\n          }\n        }" { (labeled_statement "LAB_001710c0:\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);" statement_identifier : (expression_statement "uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);" (assignment_expression "uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4)" identifier = (pointer_expression "*(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4)" * (cast_expression "(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4)" ( (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4" (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30" (cast_expression "(long)&(param_8->super_Output_data)._vptr_Output_data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data)._vptr_Output_data" & (field_expression "(param_8->super_Output_data)._vptr_Output_data" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar30" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;)) (expression_statement "uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;" (assignment_expression "uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18" identifier = (binary_expression "uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18" (binary_expression "uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8" (binary_expression "uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8" (binary_expression "uVar31 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar31 & 0xff0000) >> 8" (parenthesized_expression "(uVar31 & 0xff0000)" ( (binary_expression "uVar31 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar31 & 0xff00) << 8" (parenthesized_expression "(uVar31 & 0xff00)" ( (binary_expression "uVar31 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar31 << 0x18" identifier << number_literal))) ;) (expression_statement "local_12c = uVar11 + uVar31;" (assignment_expression "local_12c = uVar11 + uVar31" identifier = (binary_expression "uVar11 + uVar31" identifier + identifier)) ;) (if_statement "if (bVar35) {\n            src_id.second = uVar12;\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            bVar36 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3) goto LAB_00171112;\nLAB_00170fb2:\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_00170fcd;\n          }" if (parenthesized_expression "(bVar35)" ( identifier )) (compound_statement "{\n            src_id.second = uVar12;\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            bVar36 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3) goto LAB_00171112;\nLAB_00170fb2:\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_00170fcd;\n          }" { (expression_statement "src_id.second = uVar12;" (assignment_expression "src_id.second = uVar12" (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 "bVar36 = true;" (assignment_expression "bVar36 = true" identifier = true) ;) (if_statement "if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3) goto LAB_00171112;" if (parenthesized_expression "((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3)" ( (binary_expression "(*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)\n                == 3" (parenthesized_expression "(*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)" ( (binary_expression "*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf" (pointer_expression "*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4)" * (cast_expression "(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4)" ( (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4" (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar30" (cast_expression "(long)&(param_8->super_Output_data).address_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data).address_" & (field_expression "(param_8->super_Output_data).address_" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar30" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00171112;" goto statement_identifier ;)) (labeled_statement "LAB_00170fb2:\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_00170fcd;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (uVar23 == 0xffff) {\n            this = (Xindex *)(target->s390_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }\n            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);\n            goto LAB_001710c0;\n          }\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (!bVar35) goto LAB_00171042;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\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          bVar36 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3) goto LAB_00170fb2;\nLAB_00171112:\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_00170fcd:\n          src_id.first = (Relobj *)(ulong)uVar31;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (!bVar36) goto LAB_00171042;\n        }" else (compound_statement "{\n          if (uVar23 == 0xffff) {\n            this = (Xindex *)(target->s390_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }\n            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);\n            goto LAB_001710c0;\n          }\n          uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);\n          uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;\n          local_12c = uVar11 + uVar31;\n          if (!bVar35) goto LAB_00171042;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */\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          bVar36 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3) goto LAB_00170fb2;\nLAB_00171112:\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_00170fcd:\n          src_id.first = (Relobj *)(ulong)uVar31;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (!bVar36) goto LAB_00171042;\n        }" { (if_statement "if (uVar23 == 0xffff) {\n            this = (Xindex *)(target->s390_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }\n            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);\n            goto LAB_001710c0;\n          }" if (parenthesized_expression "(uVar23 == 0xffff)" ( (binary_expression "uVar23 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            this = (Xindex *)(target->s390_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }\n            uVar12 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar31);\n            goto LAB_001710c0;\n          }" { (expression_statement "this = (Xindex *)(target->s390_info).rosegment_gap;" (assignment_expression "this = (Xindex *)(target->s390_info).rosegment_gap" identifier = (cast_expression "(Xindex *)(target->s390_info).rosegment_gap" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(target->s390_info).rosegment_gap" (parenthesized_expression "(target->s390_info)" ( (field_expression "target->s390_info" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);\n              (target->s390_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->s390_info + 0xd8))(target);\n              (target->s390_info).rosegment_gap = (uint64_t)this;\n            }" { (expression_statement "this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target);" (assignment_expression "this = (Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target)" identifier = (cast_expression "(Xindex *)(**(code **)(*(long *)&target->s390_info + 0xd8))(target)" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(long *)&target->s390_info + 0xd8))(target)" (parenthesized_expression "(**(code **)(*(long *)&target->s390_info + 0xd8))" ( (pointer_expression "**(code **)(*(long *)&target->s390_info + 0xd8)" * (pointer_expression "*(code **)(*(long *)&target->s390_info + 0xd8)" * (cast_expression "(code **)(*(long *)&target->s390_info + 0xd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)&target->s390_info + 0xd8)" ( (binary_expression "*(long *)&target->s390_info + 0xd8" (pointer_expression "*(long *)&target->s390_info" * (cast_expression "(long *)&target->s390_info" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target->s390_info" & (field_expression "target->s390_info" identifier -> field_identifier)))) + number_literal) ))))) )) (argument_list "(target)" ( identifier ))))) ;) (expression_statement "(target->s390_info).rosegment_gap = (uint64_t)this;" (assignment_expression "(target->s390_info).rosegment_gap = (uint64_t)this" (field_expression "(target->s390_info).rosegment_gap" (parenthesized_expression "(target->s390_info)" ( (field_expression "target->s390_info" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint64_t)this" ( (type_descriptor "uint64_t" primitive_type) ) identifier)) ;) })) (ERROR "uVar12 = Xindex::" (assignment_expression "uVar12 = Xindex" identifier = identifier) : :) (expression_statement "sym_xindex_to_shndx(this,(Object *)target,uVar31);" (call_expression "sym_xindex_to_shndx(this,(Object *)target,uVar31)" identifier (argument_list "(this,(Object *)target,uVar31)" ( identifier , (cast_expression "(Object *)target" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (goto_statement "goto LAB_001710c0;" goto statement_identifier ;) })) (expression_statement "uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4);" (assignment_expression "uVar31 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4)" identifier = (pointer_expression "*(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4)" * (cast_expression "(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4)" ( (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30 + 4" (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)uVar30" (cast_expression "(long)&(param_8->super_Output_data)._vptr_Output_data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data)._vptr_Output_data" & (field_expression "(param_8->super_Output_data)._vptr_Output_data" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar30" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18;" (assignment_expression "uVar31 = uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18" identifier = (binary_expression "uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8 |\n                   uVar31 << 0x18" (binary_expression "uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8 | (uVar31 & 0xff00) << 8" (binary_expression "uVar31 >> 0x18 | (uVar31 & 0xff0000) >> 8" (binary_expression "uVar31 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar31 & 0xff0000) >> 8" (parenthesized_expression "(uVar31 & 0xff0000)" ( (binary_expression "uVar31 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar31 & 0xff00) << 8" (parenthesized_expression "(uVar31 & 0xff00)" ( (binary_expression "uVar31 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar31 << 0x18" identifier << number_literal))) ;) (expression_statement "local_12c = uVar11 + uVar31;" (assignment_expression "local_12c = uVar11 + uVar31" identifier = (binary_expression "uVar11 + uVar31" identifier + identifier)) ;) (if_statement "if (!bVar35) goto LAB_00171042;" if (parenthesized_expression "(!bVar35)" ( (unary_expression "!bVar35" ! identifier) )) (goto_statement "goto LAB_00171042;" 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 "bVar36 = false;" (assignment_expression "bVar36 = false" identifier = false) ;) (if_statement "if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3) goto LAB_00170fb2;" if (parenthesized_expression "((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3)" ( (binary_expression "(*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) !=\n              3" (parenthesized_expression "(*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)" ( (binary_expression "*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf" (pointer_expression "*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4)" * (cast_expression "(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4)" ( (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4" (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar30" (cast_expression "(long)&(param_8->super_Output_data).address_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data).address_" & (field_expression "(param_8->super_Output_data).address_" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar30" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00170fb2;" goto statement_identifier ;)) (labeled_statement "LAB_00171112:\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_00170fcd:\n          src_id.first = (Relobj *)(ulong)uVar31;" statement_identifier : (expression_statement "src_id.first = (Relobj *)(ulong)uVar31;" (assignment_expression "src_id.first = (Relobj *)(ulong)uVar31" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)(ulong)uVar31" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar31" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;)) (expression_statement "src_id._8_8_ = SEXT48((int)uVar11);" (assignment_expression "src_id._8_8_ = SEXT48((int)uVar11)" (field_expression "src_id._8_8_" identifier . field_identifier) = (call_expression "SEXT48((int)uVar11)" identifier (argument_list "((int)uVar11)" ( (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (labeled_statement "std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_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 "uVar11 = *puVar28;" (assignment_expression "uVar11 = *puVar28" identifier = (pointer_expression "*puVar28" * identifier)) ;) (expression_statement "src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);" (assignment_expression "src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18)" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18)" ( (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8" (binary_expression "uVar11 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar11 & 0xff0000) >> 8" (parenthesized_expression "(uVar11 & 0xff0000)" ( (binary_expression "uVar11 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar11 & 0xff00) << 8" (parenthesized_expression "(uVar11 & 0xff00)" ( (binary_expression "uVar11 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar11 << 0x18" identifier << number_literal)) ))))) ;) (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 (!bVar36) goto LAB_00171042;" if (parenthesized_expression "(!bVar36)" ( (unary_expression "!bVar36" ! identifier) )) (goto_statement "goto LAB_00171042;" goto statement_identifier ;)) }))) (expression_statement "local_118 = (Output_segment *)target;" (assignment_expression "local_118 = (Output_segment *)target" identifier = (cast_expression "(Output_segment *)target" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((local_135 == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) == 1\n           )) {\nLAB_001711d0:\n          if (uVar19 != uVar12) goto LAB_001711e3;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))) {\n            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_001711d0;\n          }\n          if (uVar19 == uVar12) goto LAB_00171042;\nLAB_001711f7:\n          if ((pGVar13->gc_sections_).value != false) {\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((local_135 == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) == 1\n           ))" ( (binary_expression "(local_135 == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) == 1\n           )" (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).address_ + (ulong)uVar30 + 4) & 0xf) == 1\n           )" ( (binary_expression "(*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf) == 1" (parenthesized_expression "(*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf)" ( (binary_expression "*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4) & 0xf" (pointer_expression "*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4)" * (cast_expression "(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4)" ( (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 4" (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar30" (cast_expression "(long)&(param_8->super_Output_data).address_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data).address_" & (field_expression "(param_8->super_Output_data).address_" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar30" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_001711d0:\n          if (uVar19 != uVar12) goto LAB_001711e3;\n        }" { (labeled_statement "LAB_001711d0:\n          if (uVar19 != uVar12) goto LAB_001711e3;" statement_identifier : (if_statement "if (uVar19 != uVar12) goto LAB_001711e3;" if (parenthesized_expression "(uVar19 != uVar12)" ( (binary_expression "uVar19 != uVar12" identifier != identifier) )) (goto_statement "goto LAB_001711e3;" goto statement_identifier ;))) }) (else_clause "else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))) {\n            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_001711d0;\n          }\n          if (uVar19 == uVar12) goto LAB_00171042;\nLAB_001711f7:\n          if ((pGVar13->gc_sections_).value != false) {\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))) {\n            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_001711d0;\n          }\n          if (uVar19 == uVar12) goto LAB_00171042;\nLAB_001711f7:\n          if ((pGVar13->gc_sections_).value != false) {\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }" { (expression_statement "pGVar13 = parameters->options_;" (assignment_expression "pGVar13 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(pGVar13 == (General_options *)0x0)" ( (binary_expression "pGVar13 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))) {\n            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_001711d0;\n          }" if (parenthesized_expression "(((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0))))" ( (binary_expression "((pGVar13->shared_).value != false) ||\n             ((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))" (parenthesized_expression "((pGVar13->shared_).value != false)" ( (binary_expression "(pGVar13->shared_).value != false" (field_expression "(pGVar13->shared_).value" (parenthesized_expression "(pGVar13->shared_)" ( (field_expression "pGVar13->shared_" identifier -> field_identifier) )) . field_identifier) != false) )) || (parenthesized_expression "((uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)))" ( (parenthesized_expression "(uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0))" ( (binary_expression "uVar9 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)" (binary_expression "uVar9 < 0x3b" identifier < number_literal) && (parenthesized_expression "((0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0)" ( (binary_expression "(0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0" (parenthesized_expression "(0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1)" ( (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1" (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)uVar9 & 0x3f)" ( (binary_expression "(ulong)uVar9 & 0x3f" (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n            uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);\n            local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_001711d0;\n          }" { (expression_statement "uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6);" (assignment_expression "uVar23 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6)" identifier = (pointer_expression "*(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6)" * (cast_expression "(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6)" ( (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar30 + 6" (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar30" (cast_expression "(long)&(param_8->super_Output_data).address_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data).address_" & (field_expression "(param_8->super_Output_data).address_" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar30" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8);" (assignment_expression "local_a0 = (uint)(ushort)(uVar23 << 8 | uVar23 >> 8)" identifier = (call_expression "(uint)(ushort)(uVar23 << 8 | uVar23 >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(uVar23 << 8 | uVar23 >> 8)" ( (binary_expression "uVar23 << 8 | uVar23 >> 8" (binary_expression "uVar23 << 8" identifier << number_literal) | (binary_expression "uVar23 >> 8" identifier >> number_literal)) )))) ;) (expression_statement "__node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;" (assignment_expression "__node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_" (field_expression "__node_gen_2._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&symtab->icf_->fptr_section_id_" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&symtab->icf_->fptr_section_id_" & (field_expression "symtab->icf_->fptr_section_id_" (field_expression "symtab->icf_" identifier -> field_identifier) -> field_identifier)))) ;) (expression_statement "local_a8 = target;" (assignment_expression "local_a8 = target" identifier = identifier) ;) (ERROR "std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::" (comma_expression "std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n            ::\n            _M_insert<std" identifier , (binary_expression "_true>_>\n            ::\n            _M_insert<std" (binary_expression "_true>_>\n            ::\n            _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);" (comma_expression "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1)" identifier (ERROR "::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , (binary_expression "_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1)" ( (parenthesized_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1)" ( (ERROR "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Identity" : : identifier : : identifier) , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_gold" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1" identifier , (comma_expression "_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1" (binary_expression "_true>_>\n                        *)__node_gen_2._M_h" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)__node_gen_2._M_h" * (ERROR ")" )) (field_expression "__node_gen_2._M_h" identifier . field_identifier))) , (comma_expression "&local_a8,&__node_gen_2,1" (pointer_expression "&local_a8" & identifier) , (comma_expression "&__node_gen_2,1" (pointer_expression "&__node_gen_2" & identifier) , number_literal))))) )) )))) ;))))) (goto_statement "goto LAB_001711d0;" goto statement_identifier ;) })) (if_statement "if (uVar19 == uVar12) goto LAB_00171042;" if (parenthesized_expression "(uVar19 == uVar12)" ( (binary_expression "uVar19 == uVar12" identifier == identifier) )) (goto_statement "goto LAB_00171042;" goto statement_identifier ;)) (labeled_statement "LAB_001711f7:\n          if ((pGVar13->gc_sections_).value != false) {\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }" statement_identifier : (if_statement "if ((pGVar13->gc_sections_).value != false) {\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }" if (parenthesized_expression "((pGVar13->gc_sections_).value != false)" ( (binary_expression "(pGVar13->gc_sections_).value != false" (field_expression "(pGVar13->gc_sections_).value" (parenthesized_expression "(pGVar13->gc_sections_)" ( (field_expression "pGVar13->gc_sections_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n            pGVar3 = symtab->gc_;\n            p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_118;\n            p_Var17 = cVar18._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar19;\n            dst_id.second = uVar12;\n            if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar14._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            pTVar5 = parameters->target_;\n            if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }" { (expression_statement "pGVar3 = symtab->gc_;" (assignment_expression "pGVar3 = symtab->gc_" identifier = (field_expression "symtab->gc_" identifier -> field_identifier)) ;) (expression_statement "p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;" (assignment_expression "p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent" identifier = (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent" (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar3->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar3->section_reloc_map_)" ( (field_expression "pGVar3->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;" (assignment_expression "cVar18._M_node =\n                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "cVar18._M_node" identifier . field_identifier) = (pointer_expression "&(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" & (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar3->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar3->section_reloc_map_)" ( (field_expression "pGVar3->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "dst_id.first = (Relobj *)local_118;" (assignment_expression "dst_id.first = (Relobj *)local_118" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_118" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "p_Var17 = cVar18._M_node;" (assignment_expression "p_Var17 = cVar18._M_node" identifier = (field_expression "cVar18._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 = uVar19;" (assignment_expression "src_id_2.second = uVar19" (field_expression "src_id_2.second" identifier . field_identifier) = identifier) ;) (expression_statement "dst_id.second = uVar12;" (assignment_expression "dst_id.second = uVar12" (field_expression "dst_id.second" identifier . field_identifier) = identifier) ;) (if_statement "if (p_Var4 == (_Base_ptr)0x0) {\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }" if (parenthesized_expression "(p_Var4 == (_Base_ptr)0x0)" ( (binary_expression "p_Var4 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_00171288:\n              local_c8._M_head_impl = &src_id_2;\n              iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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_00171288:\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 "iVar14 = 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 "iVar14 = 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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 "(&(pGVar3->section_reloc_map_)._M_t,cVar18,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                                  &local_ea)" ( (ERROR "&(pGVar3->section_reloc_map_)._M_t,cVar18,\n                                  (piecewise_construct_t *)&std::" (comma_expression "&(pGVar3->section_reloc_map_)._M_t,cVar18,\n                                  (piecewise_construct_t *)&std" (pointer_expression "&(pGVar3->section_reloc_map_)._M_t" & (field_expression "(pGVar3->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar3->section_reloc_map_)" ( (field_expression "pGVar3->section_reloc_map_" identifier -> field_identifier) )) . field_identifier)) , (comma_expression "cVar18,\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 ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }" else (compound_statement "{\n              do {\n                while ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;\n              cVar18._M_node = iVar14._M_node;\n              if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;\n            }" { (do_statement "do {\n                while ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);" do (compound_statement "{\n                while ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }\n                p_Var17 = iVar14._M_node;\n                p_Var4 = (iVar14._M_node)->_M_left;\n              }" { (while_statement "while ((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }" while (parenthesized_expression "((iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19)))))" ( (parenthesized_expression "(iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))" ( (comma_expression "iVar14._M_node = p_Var4, *(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19)))" (assignment_expression "iVar14._M_node = p_Var4" (field_expression "iVar14._M_node" identifier . field_identifier) = identifier) , (binary_expression "*(Target_s390<32> **)(iVar14._M_node + 1) < target\n                       || ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19)))" (binary_expression "*(Target_s390<32> **)(iVar14._M_node + 1) < target" (pointer_expression "*(Target_s390<32> **)(iVar14._M_node + 1)" * (call_expression "(Target_s390<32> **)(iVar14._M_node + 1)" (parenthesized_expression "(Target_s390<32> **)" ( (binary_expression "Target_s390<32> **" (binary_expression "Target_s390<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(iVar14._M_node + 1)" ( (binary_expression "iVar14._M_node + 1" (field_expression "iVar14._M_node" identifier . field_identifier) + number_literal) )))) < identifier) || (parenthesized_expression "((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19)))" ( (parenthesized_expression "(target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))" ( (binary_expression "target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                           (*(uint *)&iVar14._M_node[1]._M_parent < uVar19)" (binary_expression "target == *(Target_s390<32> **)(iVar14._M_node + 1)" identifier == (pointer_expression "*(Target_s390<32> **)(iVar14._M_node + 1)" * (call_expression "(Target_s390<32> **)(iVar14._M_node + 1)" (parenthesized_expression "(Target_s390<32> **)" ( (binary_expression "Target_s390<32> **" (binary_expression "Target_s390<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(iVar14._M_node + 1)" ( (binary_expression "iVar14._M_node + 1" (field_expression "iVar14._M_node" identifier . field_identifier) + number_literal) ))))) && (parenthesized_expression "(*(uint *)&iVar14._M_node[1]._M_parent < uVar19)" ( (binary_expression "*(uint *)&iVar14._M_node[1]._M_parent < uVar19" (pointer_expression "*(uint *)&iVar14._M_node[1]._M_parent" * (cast_expression "(uint *)&iVar14._M_node[1]._M_parent" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iVar14._M_node[1]._M_parent" & (field_expression "iVar14._M_node[1]._M_parent" (subscript_expression "iVar14._M_node[1]" (field_expression "iVar14._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                  pp_Var1 = &(iVar14._M_node)->_M_right;\n                  iVar14._M_node = p_Var17;\n                  p_Var4 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;\n                }" { (expression_statement "pp_Var1 = &(iVar14._M_node)->_M_right;" (assignment_expression "pp_Var1 = &(iVar14._M_node)->_M_right" identifier = (pointer_expression "&(iVar14._M_node)->_M_right" & (field_expression "(iVar14._M_node)->_M_right" (parenthesized_expression "(iVar14._M_node)" ( (field_expression "iVar14._M_node" identifier . field_identifier) )) -> field_identifier))) ;) (expression_statement "iVar14._M_node = p_Var17;" (assignment_expression "iVar14._M_node = p_Var17" (field_expression "iVar14._M_node" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var4 = *pp_Var1;" (assignment_expression "p_Var4 = *pp_Var1" identifier = (pointer_expression "*pp_Var1" * identifier)) ;) (if_statement "if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0017126a;" 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_0017126a;" goto statement_identifier ;)) })) (expression_statement "p_Var17 = iVar14._M_node;" (assignment_expression "p_Var17 = iVar14._M_node" identifier = (field_expression "iVar14._M_node" identifier . field_identifier)) ;) (expression_statement "p_Var4 = (iVar14._M_node)->_M_left;" (assignment_expression "p_Var4 = (iVar14._M_node)->_M_left" identifier = (field_expression "(iVar14._M_node)->_M_left" (parenthesized_expression "(iVar14._M_node)" ( (field_expression "iVar14._M_node" identifier . field_identifier) )) -> field_identifier)) ;) }) while (parenthesized_expression "((iVar14._M_node)->_M_left != (_Base_ptr)0x0)" ( (binary_expression "(iVar14._M_node)->_M_left != (_Base_ptr)0x0" (field_expression "(iVar14._M_node)->_M_left" (parenthesized_expression "(iVar14._M_node)" ( (field_expression "iVar14._M_node" identifier . field_identifier) )) -> field_identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_0017126a:\n              bVar36 = iVar14._M_node == cVar18._M_node;" statement_identifier : (expression_statement "bVar36 = iVar14._M_node == cVar18._M_node;" (assignment_expression "bVar36 = iVar14._M_node == cVar18._M_node" identifier = (binary_expression "iVar14._M_node == cVar18._M_node" (field_expression "iVar14._M_node" identifier . field_identifier) == (field_expression "cVar18._M_node" identifier . field_identifier))) ;)) (expression_statement "cVar18._M_node = iVar14._M_node;" (assignment_expression "cVar18._M_node = iVar14._M_node" (field_expression "cVar18._M_node" identifier . field_identifier) = (field_expression "iVar14._M_node" identifier . field_identifier)) ;) (if_statement "if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;" if (parenthesized_expression "(((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent))))" ( (binary_expression "((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                 ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))" (parenthesized_expression "((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1)))" ( (binary_expression "(bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))" (parenthesized_expression "(bVar36)" ( identifier )) || (parenthesized_expression "(target < *(Target_s390<32> **)(iVar14._M_node + 1))" ( (binary_expression "target < *(Target_s390<32> **)(iVar14._M_node + 1)" identifier < (pointer_expression "*(Target_s390<32> **)(iVar14._M_node + 1)" * (call_expression "(Target_s390<32> **)(iVar14._M_node + 1)" (parenthesized_expression "(Target_s390<32> **)" ( (binary_expression "Target_s390<32> **" (binary_expression "Target_s390<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(iVar14._M_node + 1)" ( (binary_expression "iVar14._M_node + 1" (field_expression "iVar14._M_node" identifier . field_identifier) + number_literal) ))))) ))) )) || (parenthesized_expression "((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))" ( (parenthesized_expression "(target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent))" ( (binary_expression "target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                  (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)" (binary_expression "target == *(Target_s390<32> **)(iVar14._M_node + 1)" identifier == (pointer_expression "*(Target_s390<32> **)(iVar14._M_node + 1)" * (call_expression "(Target_s390<32> **)(iVar14._M_node + 1)" (parenthesized_expression "(Target_s390<32> **)" ( (binary_expression "Target_s390<32> **" (binary_expression "Target_s390<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(iVar14._M_node + 1)" ( (binary_expression "iVar14._M_node + 1" (field_expression "iVar14._M_node" identifier . field_identifier) + number_literal) ))))) && (parenthesized_expression "(uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)" ( (binary_expression "uVar19 < *(uint *)&iVar14._M_node[1]._M_parent" identifier < (pointer_expression "*(uint *)&iVar14._M_node[1]._M_parent" * (cast_expression "(uint *)&iVar14._M_node[1]._M_parent" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iVar14._M_node[1]._M_parent" & (field_expression "iVar14._M_node[1]._M_parent" (subscript_expression "iVar14._M_node[1]" (field_expression "iVar14._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier))))) ))) )) ))) )) (goto_statement "goto LAB_00171288;" goto statement_identifier ;)) }))) (expression_statement "__node_gen_1._M_h = (__hashtable_alloc *)&iVar14._M_node[1]._M_left;" (assignment_expression "__node_gen_1._M_h = (__hashtable_alloc *)&iVar14._M_node[1]._M_left" (field_expression "__node_gen_1._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&iVar14._M_node[1]._M_left" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iVar14._M_node[1]._M_left" & (field_expression "iVar14._M_node[1]._M_left" (subscript_expression "iVar14._M_node[1]" (field_expression "iVar14._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 "pTVar5 = parameters->target_;" (assignment_expression "pTVar5 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (if_statement "if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }" if (parenthesized_expression "(pTVar5 == (Target *)0x0)" ( (binary_expression "pTVar5 == (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 (pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference) {\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }" if (parenthesized_expression "(pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference)" ( (comma_expression "pTVar5->_vptr_Target[0x41] != Sized_target<32,_true>::do_gc_add_reference" (binary_expression "pTVar5->_vptr_Target[0x41] != Sized_target<32" (subscript_expression "pTVar5->_vptr_Target[0x41]" (field_expression "pTVar5->_vptr_Target" identifier -> field_identifier) [ number_literal ]) != (binary_expression "Sized_target<32" identifier < number_literal)) , (binary_expression "_true>::do_gc_add_reference" identifier > (ERROR "::" : :) identifier)) )) (compound_statement "{\n              (*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);\n            }" { (expression_statement "(*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c);" (call_expression "(*pTVar5->_vptr_Target[0x41])\n                        (pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c)" (parenthesized_expression "(*pTVar5->_vptr_Target[0x41])" ( (pointer_expression "*pTVar5->_vptr_Target[0x41]" * (subscript_expression "pTVar5->_vptr_Target[0x41]" (field_expression "pTVar5->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar5,symtab,target,(ulong)src_obj & 0xffffffff,local_118,(ulong)uVar12,\n                         (ulong)local_12c)" ( 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)uVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(ulong)local_12c" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) })) (if_statement "if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_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              pGVar3 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = 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 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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              pGVar3 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }\n            }" { (expression_statement "pGVar3 = symtab->gc_;" (assignment_expression "pGVar3 = symtab->gc_" identifier = (field_expression "symtab->gc_" identifier -> field_identifier)) ;) (expression_statement "src_id.first = (Relobj *)&stack0xffffffffffffffb8;" (assignment_expression "src_id.first = (Relobj *)&stack0xffffffffffffffb8" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)&stack0xffffffffffffffb8" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffffffffffb8" & identifier))) ;) (expression_statement "sVar15 = strlen((char *)local_140);" (assignment_expression "sVar15 = 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 + sVar15));" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_140,(byte *)((long)local_140 + sVar15));" (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 + sVar15))" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_140,(byte *)((long)local_140 + sVar15))" ( (comma_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_140,(byte *)((long)local_140 + sVar15)" (binary_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id" (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)" ( (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_> *" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*" * identifier)) )) & identifier) , (comma_expression "local_140,(byte *)((long)local_140 + sVar15)" identifier , (cast_expression "(byte *)((long)local_140 + sVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_140 + sVar15)" ( (binary_expression "(long)local_140 + sVar15" (cast_expression "(long)local_140" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ))) ;)) (ERROR "iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::" (assignment_expression "iVar16 = std" identifier = identifier) : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>,_std" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>_>,_std" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (expression_statement "Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar3->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(&(pGVar3->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(&(pGVar3->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id)" identifier (argument_list "(&(pGVar3->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id)" ( (pointer_expression "&(pGVar3->cident_sections_)._M_t" & (field_expression "(pGVar3->cident_sections_)._M_t" (parenthesized_expression "(pGVar3->cident_sections_)" ( (field_expression "pGVar3->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 "pGVar3 = symtab->gc_;" (assignment_expression "pGVar3 = symtab->gc_" identifier = (field_expression "symtab->gc_" identifier -> field_identifier)) ;) (if_statement "if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }" if (parenthesized_expression "((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header)" ( (binary_expression "(_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header" (cast_expression "(_Rb_tree_header *)iVar16._M_node" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "iVar16._M_node" identifier . field_identifier)) != (pointer_expression "&(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar3->cident_sections_)._M_t._M_impl" (field_expression "(pGVar3->cident_sections_)._M_t" (parenthesized_expression "(pGVar3->cident_sections_)" ( (field_expression "pGVar3->cident_sections_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) )) (compound_statement "{\n                p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar19;\n                p_Var17 = cVar18._M_node;\n                if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }\n                for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }\n              }" { (expression_statement "p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;" (assignment_expression "p_Var4 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent" identifier = (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent" (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar3->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar3->section_reloc_map_)" ( (field_expression "pGVar3->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;" (assignment_expression "cVar18._M_node =\n                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "cVar18._M_node" identifier . field_identifier) = (pointer_expression "&(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" & (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar3->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar3->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar3->section_reloc_map_)" ( (field_expression "pGVar3->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "src_id.second = uVar19;" (assignment_expression "src_id.second = uVar19" (field_expression "src_id.second" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var17 = cVar18._M_node;" (assignment_expression "p_Var17 = cVar18._M_node" identifier = (field_expression "cVar18._M_node" identifier . field_identifier)) ;) (if_statement "if (p_Var4 == (_Base_ptr)0x0) {\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }" if (parenthesized_expression "(p_Var4 == (_Base_ptr)0x0)" ( (binary_expression "p_Var4 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_001717c0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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_001717c0:\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 "iVar14 = 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 "iVar14 = 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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,\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 "(&(pGVar3->section_reloc_map_)._M_t,cVar18,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9)" ( (ERROR "&(pGVar3->section_reloc_map_)._M_t,cVar18,\n                                      (piecewise_construct_t *)&std::" (comma_expression "&(pGVar3->section_reloc_map_)._M_t,cVar18,\n                                      (piecewise_construct_t *)&std" (pointer_expression "&(pGVar3->section_reloc_map_)._M_t" & (field_expression "(pGVar3->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar3->section_reloc_map_)" ( (field_expression "pGVar3->section_reloc_map_" identifier -> field_identifier) )) . field_identifier)) , (comma_expression "cVar18,\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 ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }" else (compound_statement "{\n                  do {\n                    while ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;\n                  cVar18._M_node = iVar14._M_node;\n                  if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;\n                }" { (do_statement "do {\n                    while ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  } while ((iVar14._M_node)->_M_left != (_Base_ptr)0x0);" do (compound_statement "{\n                    while ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }\n                    p_Var17 = iVar14._M_node;\n                    p_Var4 = (iVar14._M_node)->_M_left;\n                  }" { (while_statement "while ((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))) {\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }" while (parenthesized_expression "((iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19)))))" ( (parenthesized_expression "(iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))))" ( (comma_expression "iVar14._M_node = p_Var4,\n                           *(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19)))" (assignment_expression "iVar14._M_node = p_Var4" (field_expression "iVar14._M_node" identifier . field_identifier) = identifier) , (binary_expression "*(Target_s390<32> **)(iVar14._M_node + 1) < target ||\n                           ((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19)))" (binary_expression "*(Target_s390<32> **)(iVar14._M_node + 1) < target" (pointer_expression "*(Target_s390<32> **)(iVar14._M_node + 1)" * (call_expression "(Target_s390<32> **)(iVar14._M_node + 1)" (parenthesized_expression "(Target_s390<32> **)" ( (binary_expression "Target_s390<32> **" (binary_expression "Target_s390<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(iVar14._M_node + 1)" ( (binary_expression "iVar14._M_node + 1" (field_expression "iVar14._M_node" identifier . field_identifier) + number_literal) )))) < identifier) || (parenthesized_expression "((target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19)))" ( (parenthesized_expression "(target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19))" ( (binary_expression "target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                            (*(uint *)&iVar14._M_node[1]._M_parent < uVar19)" (binary_expression "target == *(Target_s390<32> **)(iVar14._M_node + 1)" identifier == (pointer_expression "*(Target_s390<32> **)(iVar14._M_node + 1)" * (call_expression "(Target_s390<32> **)(iVar14._M_node + 1)" (parenthesized_expression "(Target_s390<32> **)" ( (binary_expression "Target_s390<32> **" (binary_expression "Target_s390<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(iVar14._M_node + 1)" ( (binary_expression "iVar14._M_node + 1" (field_expression "iVar14._M_node" identifier . field_identifier) + number_literal) ))))) && (parenthesized_expression "(*(uint *)&iVar14._M_node[1]._M_parent < uVar19)" ( (binary_expression "*(uint *)&iVar14._M_node[1]._M_parent < uVar19" (pointer_expression "*(uint *)&iVar14._M_node[1]._M_parent" * (cast_expression "(uint *)&iVar14._M_node[1]._M_parent" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iVar14._M_node[1]._M_parent" & (field_expression "iVar14._M_node[1]._M_parent" (subscript_expression "iVar14._M_node[1]" (field_expression "iVar14._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                      pp_Var1 = &(iVar14._M_node)->_M_right;\n                      iVar14._M_node = p_Var17;\n                      p_Var4 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;\n                    }" { (expression_statement "pp_Var1 = &(iVar14._M_node)->_M_right;" (assignment_expression "pp_Var1 = &(iVar14._M_node)->_M_right" identifier = (pointer_expression "&(iVar14._M_node)->_M_right" & (field_expression "(iVar14._M_node)->_M_right" (parenthesized_expression "(iVar14._M_node)" ( (field_expression "iVar14._M_node" identifier . field_identifier) )) -> field_identifier))) ;) (expression_statement "iVar14._M_node = p_Var17;" (assignment_expression "iVar14._M_node = p_Var17" (field_expression "iVar14._M_node" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var4 = *pp_Var1;" (assignment_expression "p_Var4 = *pp_Var1" identifier = (pointer_expression "*pp_Var1" * identifier)) ;) (if_statement "if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_001713d2;" 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_001713d2;" goto statement_identifier ;)) })) (expression_statement "p_Var17 = iVar14._M_node;" (assignment_expression "p_Var17 = iVar14._M_node" identifier = (field_expression "iVar14._M_node" identifier . field_identifier)) ;) (expression_statement "p_Var4 = (iVar14._M_node)->_M_left;" (assignment_expression "p_Var4 = (iVar14._M_node)->_M_left" identifier = (field_expression "(iVar14._M_node)->_M_left" (parenthesized_expression "(iVar14._M_node)" ( (field_expression "iVar14._M_node" identifier . field_identifier) )) -> field_identifier)) ;) }) while (parenthesized_expression "((iVar14._M_node)->_M_left != (_Base_ptr)0x0)" ( (binary_expression "(iVar14._M_node)->_M_left != (_Base_ptr)0x0" (field_expression "(iVar14._M_node)->_M_left" (parenthesized_expression "(iVar14._M_node)" ( (field_expression "iVar14._M_node" identifier . field_identifier) )) -> field_identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_001713d2:\n                  bVar36 = cVar18._M_node == iVar14._M_node;" statement_identifier : (expression_statement "bVar36 = cVar18._M_node == iVar14._M_node;" (assignment_expression "bVar36 = cVar18._M_node == iVar14._M_node" identifier = (binary_expression "cVar18._M_node == iVar14._M_node" (field_expression "cVar18._M_node" identifier . field_identifier) == (field_expression "iVar14._M_node" identifier . field_identifier))) ;)) (expression_statement "cVar18._M_node = iVar14._M_node;" (assignment_expression "cVar18._M_node = iVar14._M_node" (field_expression "cVar18._M_node" identifier . field_identifier) = (field_expression "iVar14._M_node" identifier . field_identifier)) ;) (if_statement "if (((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;" if (parenthesized_expression "(((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent))))" ( (binary_expression "((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))" (parenthesized_expression "((bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1)))" ( (binary_expression "(bVar36) || (target < *(Target_s390<32> **)(iVar14._M_node + 1))" (parenthesized_expression "(bVar36)" ( identifier )) || (parenthesized_expression "(target < *(Target_s390<32> **)(iVar14._M_node + 1))" ( (binary_expression "target < *(Target_s390<32> **)(iVar14._M_node + 1)" identifier < (pointer_expression "*(Target_s390<32> **)(iVar14._M_node + 1)" * (call_expression "(Target_s390<32> **)(iVar14._M_node + 1)" (parenthesized_expression "(Target_s390<32> **)" ( (binary_expression "Target_s390<32> **" (binary_expression "Target_s390<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(iVar14._M_node + 1)" ( (binary_expression "iVar14._M_node + 1" (field_expression "iVar14._M_node" identifier . field_identifier) + number_literal) ))))) ))) )) || (parenthesized_expression "((src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)))" ( (parenthesized_expression "(src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent))" ( (comma_expression "src_id.first = (Relobj *)target,\n                      target == *(Target_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._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_s390<32> **)(iVar14._M_node + 1) &&\n                      (uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)" (binary_expression "target == *(Target_s390<32> **)(iVar14._M_node + 1)" identifier == (pointer_expression "*(Target_s390<32> **)(iVar14._M_node + 1)" * (call_expression "(Target_s390<32> **)(iVar14._M_node + 1)" (parenthesized_expression "(Target_s390<32> **)" ( (binary_expression "Target_s390<32> **" (binary_expression "Target_s390<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(iVar14._M_node + 1)" ( (binary_expression "iVar14._M_node + 1" (field_expression "iVar14._M_node" identifier . field_identifier) + number_literal) ))))) && (parenthesized_expression "(uVar19 < *(uint *)&iVar14._M_node[1]._M_parent)" ( (binary_expression "uVar19 < *(uint *)&iVar14._M_node[1]._M_parent" identifier < (pointer_expression "*(uint *)&iVar14._M_node[1]._M_parent" * (cast_expression "(uint *)&iVar14._M_node[1]._M_parent" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iVar14._M_node[1]._M_parent" & (field_expression "iVar14._M_node[1]._M_parent" (subscript_expression "iVar14._M_node[1]" (field_expression "iVar14._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier))))) )))) )) ))) )) (goto_statement "goto LAB_001717c0;" goto statement_identifier ;)) }))) (for_statement "for (p_Var6 = iVar16._M_node[2]._M_left; p_Var6 != (_Base_ptr)0x0;\n                    p_Var6 = *(_Base_ptr *)p_Var6) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }" for ( (assignment_expression "p_Var6 = iVar16._M_node[2]._M_left" identifier = (field_expression "iVar16._M_node[2]._M_left" (subscript_expression "iVar16._M_node[2]" (field_expression "iVar16._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)) ; (binary_expression "p_Var6 != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) ; (assignment_expression "p_Var6 = *(_Base_ptr *)p_Var6" identifier = (pointer_expression "*(_Base_ptr *)p_Var6" * (cast_expression "(_Base_ptr *)p_Var6" ( (type_descriptor "_Base_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ) (compound_statement "{\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_M_parent,&__node_gen,1);\n                }" { (expression_statement "__node_gen._M_h = (__hashtable_alloc *)&iVar14._M_node[1]._M_left;" (assignment_expression "__node_gen._M_h = (__hashtable_alloc *)&iVar14._M_node[1]._M_left" (field_expression "__node_gen._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&iVar14._M_node[1]._M_left" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iVar14._M_node[1]._M_left" & (field_expression "iVar14._M_node[1]._M_left" (subscript_expression "iVar14._M_node[1]" (field_expression "iVar14._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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_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                              *)&iVar14._M_node[1]._M_left,&p_Var6->_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                              *)&iVar14._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 "iVar14._M_node[1]._M_left" (subscript_expression "iVar14._M_node[1]" (field_expression "iVar14._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)) , (comma_expression "&p_Var6->_M_parent,&__node_gen,1" (pointer_expression "&p_Var6->_M_parent" & (field_expression "p_Var6->_M_parent" identifier -> field_identifier)) , (comma_expression "&__node_gen,1" (pointer_expression "&__node_gen" & identifier) , number_literal))) )))) ;))))) })) })) })) }))) }))) }) (else_clause "else {\n        if (uVar31 < target[1].got_mod_index_offset_) {\n          dst_id.first = (Relobj *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar32 = (ulong)(uVar31 - target[1].got_mod_index_offset_);\n        if ((ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)\n            <= uVar32) {\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].s390_info + uVar32 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_001716a8;\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          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          local_118 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_12c = uVar11 + uVar30;\n          if (((ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar33 = bVar21 < 2;\n            uVar37 = bVar21 == 2;\n            if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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          }\n          else {\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }\n        }\n        else {\n          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          bVar29 = 0;\n          local_118 = (Output_segment *)0x0;\n          local_12c = uVar11 + uVar30;\n          uVar33 = 0;\n          uVar12 = 0;\n          uVar37 = 1;\n        }\nLAB_001714f0:\n        pp_Var7 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar20 = 8;\n        pbVar24 = (byte *)"__start_";\n        pp_Var25 = pp_Var7;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar33 = *pbVar24 < *(byte *)pp_Var25;\n          uVar37 = *pbVar24 == *(byte *)pp_Var25;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n        } while ((bool)uVar37);\n        bVar36 = false;\n        bVar38 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;\n        if (bVar38) {\n          pp_Var7 = pp_Var7 + 1;\n        }\n        else {\n          lVar20 = 7;\n          pbVar24 = (byte *)"__stop_";\n          pp_Var25 = pp_Var7;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          } while (bVar38);\n          pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);\n          if ((!bVar36 && !bVar38) != bVar36) {\n            pp_Var7 = local_140;\n          }\n        }\n        local_140 = pp_Var7;\n        if (bVar35) {\n          if (bVar29 == 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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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 = (Relobj *)(ulong)uVar30;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (bVar29 != 0) {\nLAB_001711e3:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }" else (compound_statement "{\n        if (uVar31 < target[1].got_mod_index_offset_) {\n          dst_id.first = (Relobj *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar32 = (ulong)(uVar31 - target[1].got_mod_index_offset_);\n        if ((ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)\n            <= uVar32) {\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].s390_info + uVar32 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_001716a8;\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          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          local_118 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_12c = uVar11 + uVar30;\n          if (((ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar33 = bVar21 < 2;\n            uVar37 = bVar21 == 2;\n            if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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          }\n          else {\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }\n        }\n        else {\n          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          bVar29 = 0;\n          local_118 = (Output_segment *)0x0;\n          local_12c = uVar11 + uVar30;\n          uVar33 = 0;\n          uVar12 = 0;\n          uVar37 = 1;\n        }\nLAB_001714f0:\n        pp_Var7 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar20 = 8;\n        pbVar24 = (byte *)"__start_";\n        pp_Var25 = pp_Var7;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar33 = *pbVar24 < *(byte *)pp_Var25;\n          uVar37 = *pbVar24 == *(byte *)pp_Var25;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n        } while ((bool)uVar37);\n        bVar36 = false;\n        bVar38 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;\n        if (bVar38) {\n          pp_Var7 = pp_Var7 + 1;\n        }\n        else {\n          lVar20 = 7;\n          pbVar24 = (byte *)"__stop_";\n          pp_Var25 = pp_Var7;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          } while (bVar38);\n          pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);\n          if ((!bVar36 && !bVar38) != bVar36) {\n            pp_Var7 = local_140;\n          }\n        }\n        local_140 = pp_Var7;\n        if (bVar35) {\n          if (bVar29 == 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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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 = (Relobj *)(ulong)uVar30;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (bVar29 != 0) {\nLAB_001711e3:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }" { (if_statement "if (uVar31 < target[1].got_mod_index_offset_) {\n          dst_id.first = (Relobj *)0x0;\nLAB_001716a8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" if (parenthesized_expression "(uVar31 < target[1].got_mod_index_offset_)" ( (binary_expression "uVar31 < target[1].got_mod_index_offset_" identifier < (field_expression "target[1].got_mod_index_offset_" (subscript_expression "target[1]" identifier [ number_literal ]) . field_identifier)) )) (compound_statement "{\n          dst_id.first = (Relobj *)0x0;\nLAB_001716a8:\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_001716a8:\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 "uVar32 = (ulong)(uVar31 - target[1].got_mod_index_offset_);" (assignment_expression "uVar32 = (ulong)(uVar31 - target[1].got_mod_index_offset_)" identifier = (call_expression "(ulong)(uVar31 - target[1].got_mod_index_offset_)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar31 - target[1].got_mod_index_offset_)" ( (binary_expression "uVar31 - target[1].got_mod_index_offset_" identifier - (field_expression "target[1].got_mod_index_offset_" (subscript_expression "target[1]" identifier [ number_literal ]) . field_identifier)) )))) ;) (if_statement "if ((ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)\n            <= uVar32) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }" if (parenthesized_expression "((ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)\n            <= uVar32)" ( (binary_expression "(ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)\n            <= uVar32" (call_expression "(ulong)(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3)" ( (binary_expression "*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info >> 3" (binary_expression "*(long *)&target[2].s390_info.machine_code - *(long *)&target[2].s390_info" (pointer_expression "*(long *)&target[2].s390_info.machine_code" * (cast_expression "(long *)&target[2].s390_info.machine_code" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target[2].s390_info.machine_code" & (field_expression "target[2].s390_info.machine_code" (field_expression "target[2].s390_info" (subscript_expression "target[2]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) - (pointer_expression "*(long *)&target[2].s390_info" * (cast_expression "(long *)&target[2].s390_info" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target[2].s390_info" & (field_expression "target[2].s390_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].s390_info + uVar32 * 8);" (assignment_expression "dst_id.first = *(Relobj **)(*(long *)&target[2].s390_info + uVar32 * 8)" (field_expression "dst_id.first" identifier . field_identifier) = (pointer_expression "*(Relobj **)(*(long *)&target[2].s390_info + uVar32 * 8)" * (cast_expression "(Relobj **)(*(long *)&target[2].s390_info + uVar32 * 8)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)&target[2].s390_info + uVar32 * 8)" ( (binary_expression "*(long *)&target[2].s390_info + uVar32 * 8" (pointer_expression "*(long *)&target[2].s390_info" * (cast_expression "(long *)&target[2].s390_info" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target[2].s390_info" & (field_expression "target[2].s390_info" (subscript_expression "target[2]" identifier [ number_literal ]) . field_identifier)))) + (binary_expression "uVar32 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (dst_id.first == (Relobj *)0x0) goto LAB_001716a8;" 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_001716a8;" 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          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          local_118 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_12c = uVar11 + uVar30;\n          if (((ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar33 = bVar21 < 2;\n            uVar37 = bVar21 == 2;\n            if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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          }\n          else {\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }\n        }\n        else {\n          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          bVar29 = 0;\n          local_118 = (Output_segment *)0x0;\n          local_12c = uVar11 + uVar30;\n          uVar33 = 0;\n          uVar12 = 0;\n          uVar37 = 1;\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          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          local_118 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_12c = uVar11 + uVar30;\n          if (((ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar33 = bVar21 < 2;\n            uVar37 = bVar21 == 2;\n            if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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          }\n          else {\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }\n        }" { (expression_statement "uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;" (assignment_expression "uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_" identifier = (pointer_expression "*(uint *)&((dst_id.first)->super_Object).xindex_" * (cast_expression "(uint *)&((dst_id.first)->super_Object).xindex_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((dst_id.first)->super_Object).xindex_" & (field_expression "((dst_id.first)->super_Object).xindex_" (parenthesized_expression "((dst_id.first)->super_Object)" ( (field_expression "(dst_id.first)->super_Object" (parenthesized_expression "(dst_id.first)" ( (field_expression "dst_id.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))))) ;) (expression_statement "local_118 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;" (assignment_expression "local_118 = ((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_12c = uVar11 + uVar30;" (assignment_expression "local_12c = uVar11 + uVar30" identifier = (binary_expression "uVar11 + uVar30" identifier + identifier)) ;) (if_statement "if (((ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar33 = bVar21 < 2;\n            uVar37 = bVar21 == 2;\n            if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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          }\n          else {\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }" if (parenthesized_expression "(((ulong)local_118->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_118->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_118->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_118->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_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish" (field_expression "(ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl" (binary_expression "(ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)local_118->output_lists_[2].\n                      super__Vector_base<gold" (cast_expression "(ulong)local_118->output_lists_[2].\n                      super__Vector_base" ( (type_descriptor "ulong" type_identifier) ) (field_expression "local_118->output_lists_[2].\n                      super__Vector_base" (subscript_expression "local_118->output_lists_[2]" (field_expression "local_118->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            uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar33 = bVar21 < 2;\n            uVar37 = bVar21 == 2;\n            if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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          }" { (expression_statement "uVar12 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;" (assignment_expression "uVar12 = *(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 "bVar21 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;" (assignment_expression "bVar21 = (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 "bVar29 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;" (assignment_expression "bVar29 = *(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 "uVar33 = bVar21 < 2;" (assignment_expression "uVar33 = bVar21 < 2" identifier = (binary_expression "bVar21 < 2" identifier < number_literal)) ;) (expression_statement "uVar37 = bVar21 == 2;" (assignment_expression "uVar37 = bVar21 == 2" identifier = (binary_expression "bVar21 == 2" identifier == number_literal)) ;) (if_statement "if ((bool)uVar37) {\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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)uVar37)" ( (cast_expression "(bool)uVar37" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n              uVar33 = 0;\n              uVar37 = local_135 == '\0';\n              if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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 "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (expression_statement "uVar37 = local_135 == '\0';" (assignment_expression "uVar37 = local_135 == '\0'" identifier = (binary_expression "local_135 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!(bool)uVar37) {\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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)uVar37)" ( (unary_expression "!(bool)uVar37" ! (cast_expression "(bool)uVar37" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar33 = false;\n                uVar37 = bVar29 == 0;\n                if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_118;\n                local_b0 = uVar12;\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 "uVar33 = false;" (assignment_expression "uVar33 = false" identifier = false) ;) (expression_statement "uVar37 = bVar29 == 0;" (assignment_expression "uVar37 = bVar29 == 0" identifier = (binary_expression "bVar29 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar37) {\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }" if (parenthesized_expression "(!(bool)uVar37)" ( (unary_expression "!(bool)uVar37" ! (cast_expression "(bool)uVar37" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                  if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if ((parameters->options_->shared_).value != false) {\n                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }\n                  uVar33 = uVar9 < 0x3a;\n                  uVar37 = uVar9 == 0x3a;\n                  if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;\n                }" { (if_statement "if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if ((parameters->options_->shared_).value != false) {\n                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\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                    uVar33 = false;\n                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar37) goto LAB_00171878;\n                  }" { (expression_statement "uVar33 = false;" (assignment_expression "uVar33 = false" identifier = false) ;) (expression_statement "uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;" (assignment_expression "uVar37 = (((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)uVar37) goto LAB_00171878;" if (parenthesized_expression "(!(bool)uVar37)" ( (unary_expression "!(bool)uVar37" ! (cast_expression "(bool)uVar37" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00171878;" goto statement_identifier ;)) })) (expression_statement "uVar33 = uVar9 < 0x3a;" (assignment_expression "uVar33 = uVar9 < 0x3a" identifier = (binary_expression "uVar9 < 0x3a" identifier < number_literal)) ;) (expression_statement "uVar37 = uVar9 == 0x3a;" (assignment_expression "uVar37 = uVar9 == 0x3a" identifier = (binary_expression "uVar9 == 0x3a" identifier == number_literal)) ;) (if_statement "if ((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )) goto LAB_001714f0;" if (parenthesized_expression "((0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     ))" ( (binary_expression "(0x3a < uVar9) ||\n                     (uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )" (parenthesized_expression "(0x3a < uVar9)" ( (binary_expression "0x3a < uVar9" number_literal < identifier) )) || (parenthesized_expression "(uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33\n                     )" ( (comma_expression "uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0, !(bool)uVar33" (assignment_expression "uVar33 = (0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0" identifier = (binary_expression "(0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1) != 0" (parenthesized_expression "(0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1)" ( (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f) & 1" (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar9 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)uVar9 & 0x3f)" ( (binary_expression "(ulong)uVar9 & 0x3f" (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal)) , (unary_expression "!(bool)uVar33" ! (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_001714f0;" goto statement_identifier ;)) })) (labeled_statement "LAB_00171878:\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_118;" (assignment_expression "local_b8 = local_118" identifier = identifier) ;) (expression_statement "local_b0 = uVar12;" (assignment_expression "local_b0 = uVar12" 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))))) )) )))) ;))))) })) })) }) (else_clause "else {\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }" else (compound_statement "{\n            local_118 = (Output_segment *)0x0;\n            bVar29 = 0;\n            uVar33 = 0;\n            uVar12 = 0;\n            uVar37 = 1;\n          }" { (expression_statement "local_118 = (Output_segment *)0x0;" (assignment_expression "local_118 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar37 = 1;" (assignment_expression "uVar37 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          bVar29 = 0;\n          local_118 = (Output_segment *)0x0;\n          local_12c = uVar11 + uVar30;\n          uVar33 = 0;\n          uVar12 = 0;\n          uVar37 = 1;\n        }" else (compound_statement "{\n          uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          bVar29 = 0;\n          local_118 = (Output_segment *)0x0;\n          local_12c = uVar11 + uVar30;\n          uVar33 = 0;\n          uVar12 = 0;\n          uVar37 = 1;\n        }" { (expression_statement "uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_;" (assignment_expression "uVar30 = *(uint *)&((dst_id.first)->super_Object).xindex_" identifier = (pointer_expression "*(uint *)&((dst_id.first)->super_Object).xindex_" * (cast_expression "(uint *)&((dst_id.first)->super_Object).xindex_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((dst_id.first)->super_Object).xindex_" & (field_expression "((dst_id.first)->super_Object).xindex_" (parenthesized_expression "((dst_id.first)->super_Object)" ( (field_expression "(dst_id.first)->super_Object" (parenthesized_expression "(dst_id.first)" ( (field_expression "dst_id.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "local_118 = (Output_segment *)0x0;" (assignment_expression "local_118 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_12c = uVar11 + uVar30;" (assignment_expression "local_12c = uVar11 + uVar30" identifier = (binary_expression "uVar11 + uVar30" identifier + identifier)) ;) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar37 = 1;" (assignment_expression "uVar37 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_001714f0:\n        pp_Var7 = ((dst_id.first)->super_Object)._vptr_Object;" statement_identifier : (expression_statement "pp_Var7 = ((dst_id.first)->super_Object)._vptr_Object;" (assignment_expression "pp_Var7 = ((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 "lVar20 = 8;" (assignment_expression "lVar20 = 8" identifier = number_literal) ;) (expression_statement "pbVar24 = (byte *)"__start_";" (assignment_expression "pbVar24 = (byte *)"__start_"" identifier = (cast_expression "(byte *)"__start_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__start_"" " string_content "))) ;) (expression_statement "pp_Var25 = pp_Var7;" (assignment_expression "pp_Var25 = pp_Var7" identifier = identifier) ;) (do_statement "do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar33 = *pbVar24 < *(byte *)pp_Var25;\n          uVar37 = *pbVar24 == *(byte *)pp_Var25;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n        } while ((bool)uVar37);" do (compound_statement "{\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar33 = *pbVar24 < *(byte *)pp_Var25;\n          uVar37 = *pbVar24 == *(byte *)pp_Var25;\n          pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n          pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n        }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "uVar33 = *pbVar24 < *(byte *)pp_Var25;" (assignment_expression "uVar33 = *pbVar24 < *(byte *)pp_Var25" identifier = (binary_expression "*pbVar24 < *(byte *)pp_Var25" (pointer_expression "*pbVar24" * identifier) < (pointer_expression "*(byte *)pp_Var25" * (cast_expression "(byte *)pp_Var25" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "uVar37 = *pbVar24 == *(byte *)pp_Var25;" (assignment_expression "uVar37 = *pbVar24 == *(byte *)pp_Var25" identifier = (binary_expression "*pbVar24 == *(byte *)pp_Var25" (pointer_expression "*pbVar24" * identifier) == (pointer_expression "*(byte *)pp_Var25" * (cast_expression "(byte *)pp_Var25" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;" (assignment_expression "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1" identifier = (binary_expression "pbVar24 + (ulong)bVar39 * -2 + 1" (binary_expression "pbVar24 + (ulong)bVar39 * -2" identifier + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);" (assignment_expression "pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pp_Var25 + (ulong)bVar39 * -2 + 1)" ( (binary_expression "(long)pp_Var25 + (ulong)bVar39 * -2 + 1" (binary_expression "(long)pp_Var25 + (ulong)bVar39 * -2" (cast_expression "(long)pp_Var25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "((bool)uVar37)" ( (cast_expression "(bool)uVar37" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar36 = false;" (assignment_expression "bVar36 = false" identifier = false) ;) (expression_statement "bVar38 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;" (assignment_expression "bVar38 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33" identifier = (binary_expression "(!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33" (parenthesized_expression "(!(bool)uVar33 && !(bool)uVar37)" ( (binary_expression "!(bool)uVar33 && !(bool)uVar37" (unary_expression "!(bool)uVar33" ! (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar37" ! (cast_expression "(bool)uVar37" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar38) {\n          pp_Var7 = pp_Var7 + 1;\n        }\n        else {\n          lVar20 = 7;\n          pbVar24 = (byte *)"__stop_";\n          pp_Var25 = pp_Var7;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          } while (bVar38);\n          pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);\n          if ((!bVar36 && !bVar38) != bVar36) {\n            pp_Var7 = local_140;\n          }\n        }" if (parenthesized_expression "(bVar38)" ( identifier )) (compound_statement "{\n          pp_Var7 = pp_Var7 + 1;\n        }" { (expression_statement "pp_Var7 = pp_Var7 + 1;" (assignment_expression "pp_Var7 = pp_Var7 + 1" identifier = (binary_expression "pp_Var7 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          lVar20 = 7;\n          pbVar24 = (byte *)"__stop_";\n          pp_Var25 = pp_Var7;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          } while (bVar38);\n          pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);\n          if ((!bVar36 && !bVar38) != bVar36) {\n            pp_Var7 = local_140;\n          }\n        }" else (compound_statement "{\n          lVar20 = 7;\n          pbVar24 = (byte *)"__stop_";\n          pp_Var25 = pp_Var7;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          } while (bVar38);\n          pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);\n          if ((!bVar36 && !bVar38) != bVar36) {\n            pp_Var7 = local_140;\n          }\n        }" { (expression_statement "lVar20 = 7;" (assignment_expression "lVar20 = 7" identifier = number_literal) ;) (expression_statement "pbVar24 = (byte *)"__stop_";" (assignment_expression "pbVar24 = (byte *)"__stop_"" identifier = (cast_expression "(byte *)"__stop_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__stop_"" " string_content "))) ;) (expression_statement "pp_Var25 = pp_Var7;" (assignment_expression "pp_Var25 = pp_Var7" identifier = identifier) ;) (do_statement "do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          } while (bVar38);" do (compound_statement "{\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar36 = *pbVar24 < *(byte *)pp_Var25;\n            bVar38 = *pbVar24 == *(byte *)pp_Var25;\n            pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;\n            pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);\n          }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar36 = *pbVar24 < *(byte *)pp_Var25;" (assignment_expression "bVar36 = *pbVar24 < *(byte *)pp_Var25" identifier = (binary_expression "*pbVar24 < *(byte *)pp_Var25" (pointer_expression "*pbVar24" * identifier) < (pointer_expression "*(byte *)pp_Var25" * (cast_expression "(byte *)pp_Var25" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar38 = *pbVar24 == *(byte *)pp_Var25;" (assignment_expression "bVar38 = *pbVar24 == *(byte *)pp_Var25" identifier = (binary_expression "*pbVar24 == *(byte *)pp_Var25" (pointer_expression "*pbVar24" * identifier) == (pointer_expression "*(byte *)pp_Var25" * (cast_expression "(byte *)pp_Var25" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1;" (assignment_expression "pbVar24 = pbVar24 + (ulong)bVar39 * -2 + 1" identifier = (binary_expression "pbVar24 + (ulong)bVar39 * -2 + 1" (binary_expression "pbVar24 + (ulong)bVar39 * -2" identifier + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1);" (assignment_expression "pp_Var25 = (_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((long)pp_Var25 + (ulong)bVar39 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pp_Var25 + (ulong)bVar39 * -2 + 1)" ( (binary_expression "(long)pp_Var25 + (ulong)bVar39 * -2 + 1" (binary_expression "(long)pp_Var25 + (ulong)bVar39 * -2" (cast_expression "(long)pp_Var25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar39 * -2" (cast_expression "(ulong)bVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar38)" ( identifier )) ;) (expression_statement "pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7);" (assignment_expression "pp_Var7 = (_func_int_varargs **)((long)pp_Var7 + 7)" identifier = (cast_expression "(_func_int_varargs **)((long)pp_Var7 + 7)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pp_Var7 + 7)" ( (binary_expression "(long)pp_Var7 + 7" (cast_expression "(long)pp_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if ((!bVar36 && !bVar38) != bVar36) {\n            pp_Var7 = local_140;\n          }" if (parenthesized_expression "((!bVar36 && !bVar38) != bVar36)" ( (binary_expression "(!bVar36 && !bVar38) != bVar36" (parenthesized_expression "(!bVar36 && !bVar38)" ( (binary_expression "!bVar36 && !bVar38" (unary_expression "!bVar36" ! identifier) && (unary_expression "!bVar38" ! identifier)) )) != identifier) )) (compound_statement "{\n            pp_Var7 = local_140;\n          }" { (expression_statement "pp_Var7 = local_140;" (assignment_expression "pp_Var7 = local_140" identifier = identifier) ;) })) }))) (expression_statement "local_140 = pp_Var7;" (assignment_expression "local_140 = pp_Var7" identifier = identifier) ;) (if_statement "if (bVar35) {\n          if (bVar29 == 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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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 = (Relobj *)(ulong)uVar30;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 "(bVar35)" ( identifier )) (compound_statement "{\n          if (bVar29 == 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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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 = (Relobj *)(ulong)uVar30;\n          src_id._8_8_ = SEXT48((int)uVar11);\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          uVar11 = *puVar28;\n          src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);\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 (bVar29 == 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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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 "(bVar29 == 0)" ( (binary_expression "bVar29 == 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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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.second = uVar12;\n            src_id.first = (Relobj *)local_118;\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.second = uVar12;" (assignment_expression "src_id.second = uVar12" (field_expression "src_id.second" identifier . field_identifier) = identifier) ;) (expression_statement "src_id.first = (Relobj *)local_118;" (assignment_expression "src_id.first = (Relobj *)local_118" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_118" ( (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 "__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 = (Relobj *)(ulong)uVar30;" (assignment_expression "src_id.first = (Relobj *)(ulong)uVar30" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)(ulong)uVar30" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar30" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "src_id._8_8_ = SEXT48((int)uVar11);" (assignment_expression "src_id._8_8_ = SEXT48((int)uVar11)" (field_expression "src_id._8_8_" identifier . field_identifier) = (call_expression "SEXT48((int)uVar11)" identifier (argument_list "((int)uVar11)" ( (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (labeled_statement "std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_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 "uVar11 = *puVar28;" (assignment_expression "uVar11 = *puVar28" identifier = (pointer_expression "*puVar28" * identifier)) ;) (expression_statement "src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18);" (assignment_expression "src_id.first = (Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18)" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)\n                         (ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18)" ( (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8\n                                | uVar11 << 0x18" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8" (binary_expression "uVar11 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar11 & 0xff0000) >> 8" (parenthesized_expression "(uVar11 & 0xff0000)" ( (binary_expression "uVar11 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar11 & 0xff00) << 8" (parenthesized_expression "(uVar11 & 0xff00)" ( (binary_expression "uVar11 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar11 << 0x18" identifier << number_literal)) ))))) ;) (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 (bVar29 != 0) {\nLAB_001711e3:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }" if (parenthesized_expression "(bVar29 != 0)" ( (binary_expression "bVar29 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_001711e3:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }" { (labeled_statement "LAB_001711e3:\n          pGVar13 = parameters->options_;" statement_identifier : (expression_statement "pGVar13 = parameters->options_;" (assignment_expression "pGVar13 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;)) (if_statement "if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(pGVar13 == (General_options *)0x0)" ( (binary_expression "pGVar13 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (goto_statement "goto LAB_001711f7;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00171042:\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 "puVar28 = puVar28 + 3;" (assignment_expression "puVar28 = puVar28 + 3" identifier = (binary_expression "puVar28 + 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_00170e10(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)\n\n{\n  undefined8 *puVar1;\n  long *plVar2;\n  code *pcVar3;\n  uint uVar4;\n  char cVar5;\n  uint uVar6;\n  uint uVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  byte *pbVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte bVar19;\n  long lVar20;\n  uint uVar21;\n  ulong uVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  undefined1 uVar27;\n  bool bVar28;\n  byte bVar29;\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  int local_12c;\n  byte *local_118;\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  bVar29 = 0;\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_00174550(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_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\nLAB_00170ea5:\n    bVar25 = 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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    \n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00170f04:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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_002f1e60();\n  }\n  return;\n}\n\n" (function_definition "void FUN_00170e10(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)\n\n{\n  undefined8 *puVar1;\n  long *plVar2;\n  code *pcVar3;\n  uint uVar4;\n  char cVar5;\n  uint uVar6;\n  uint uVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  byte *pbVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte bVar19;\n  long lVar20;\n  uint uVar21;\n  ulong uVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  undefined1 uVar27;\n  bool bVar28;\n  byte bVar29;\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  int local_12c;\n  byte *local_118;\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  bVar29 = 0;\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_00174550(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_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\nLAB_00170ea5:\n    bVar25 = 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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    \n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00170f04:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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_002f1e60();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00170e10(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)" identifier (parameter_list "(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_7" type_identifier identifier) , (parameter_declaration "long param_8" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined8 *puVar1;\n  long *plVar2;\n  code *pcVar3;\n  uint uVar4;\n  char cVar5;\n  uint uVar6;\n  uint uVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  byte *pbVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte bVar19;\n  long lVar20;\n  uint uVar21;\n  ulong uVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  undefined1 uVar27;\n  bool bVar28;\n  byte bVar29;\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  int local_12c;\n  byte *local_118;\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  bVar29 = 0;\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_00174550(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_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\nLAB_00170ea5:\n    bVar25 = 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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    \n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00170f04:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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_002f1e60();\n  }\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "ushort uVar15;" type_identifier 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 "byte bVar19;" type_identifier identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "ulong uVar22;" type_identifier identifier ;) (declaration "undefined1 uVar23;" type_identifier identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "undefined1 uVar27;" type_identifier identifier ;) (declaration "bool bVar28;" primitive_type identifier ;) (declaration "byte bVar29;" 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 "int local_12c;" primitive_type identifier ;) (declaration "byte *local_118;" type_identifier (pointer_declarator "*local_118" * 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 "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (if_statement "if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../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_0045c708 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_00174550(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_0045c708 + 0x10) + 0x9050) == 0)" ( (binary_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" * (cast_expression "(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_78[0] = local_68;\n    FUN_00174550(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_00174550(local_78,"");" (call_expression "FUN_00174550(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_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../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_0045c708 + 0x10) + 0x9050) == 0) {\nLAB_00170ea5:\n    bVar25 = 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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }" if (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0)" ( (binary_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" * (cast_expression "(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00170ea5:\n    bVar25 = 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_00170ea5:\n    bVar25 = false;" statement_identifier : (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = 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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }" else (compound_statement "{\n    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }" { (expression_statement "pbVar14 = (byte *)0xffffffffffffffff;" (assignment_expression "pbVar14 = (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 "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar27 = local_78[0] == (byte *)0x0;" (assignment_expression "uVar27 = 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)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }" if (parenthesized_expression "(!(bool)uVar27)" ( (unary_expression "!(bool)uVar27" ! (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }" { (expression_statement "sVar9 = strlen((char *)local_78[0]);" (assignment_expression "sVar9 = 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 "pbVar14 = pbVar17 + sVar9;" (assignment_expression "pbVar14 = pbVar17 + sVar9" identifier = (binary_expression "pbVar17 + sVar9" identifier + identifier)) ;) })) (expression_statement "FUN_00174550(&local_58,pbVar17,pbVar14);" (call_expression "FUN_00174550(&local_58,pbVar17,pbVar14)" identifier (argument_list "(&local_58,pbVar17,pbVar14)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "lVar20 = 5;" (assignment_expression "lVar20 = 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 "pbVar14 = local_58;" (assignment_expression "pbVar14 = local_58" identifier = identifier) ;) (do_statement "do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);" do (compound_statement "{\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "uVar23 = *pbVar17 < *pbVar14;" (assignment_expression "uVar23 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "uVar27 = *pbVar17 == *pbVar14;" (assignment_expression "uVar27 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar27)" ( (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;" (assignment_expression "bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23" identifier = (binary_expression "(!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23" (parenthesized_expression "(!(bool)uVar23 && !(bool)uVar27)" ( (binary_expression "!(bool)uVar23 && !(bool)uVar27" (unary_expression "!(bool)uVar23" ! (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar27" ! (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }" { (expression_statement "lVar20 = 0xf;" (assignment_expression "lVar20 = 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 "pbVar14 = local_58;" (assignment_expression "pbVar14 = local_58" identifier = identifier) ;) (do_statement "do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);" do (compound_statement "{\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar14;" (assignment_expression "bVar25 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }" if (parenthesized_expression "((!bVar25 && !bVar26) != bVar25)" ( (binary_expression "(!bVar25 && !bVar26) != bVar25" (parenthesized_expression "(!bVar25 && !bVar26)" ( (binary_expression "!bVar25 && !bVar26" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }" { (if_statement "if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n          FUN_002f1e60(local_58);\n        }" { (expression_statement "FUN_002f1e60(local_58);" (call_expression "FUN_002f1e60(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) })) (goto_statement "goto LAB_00170ea5;" goto statement_identifier ;) })) })) (if_statement "if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n      FUN_002f1e60(local_58);\n    }" { (expression_statement "FUN_002f1e60(local_58);" (call_expression "FUN_002f1e60(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_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);" (assignment_expression "local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" identifier = (call_expression "FUN_00179620(*(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_168 = local_160 + 0x30;" (assignment_expression "local_168 = local_160 + 0x30" identifier = (binary_expression "local_160 + 0x30" 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_170 = local_160 + 0x60;" (assignment_expression "local_170 = local_160 + 0x60" identifier = (binary_expression "local_160 + 0x60" identifier + number_literal)) ;) (expression_statement "bVar25 = true;" (assignment_expression "bVar25 = true" identifier = true) ;) }))) (if_statement "if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../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_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    \n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0'))" ( (binary_expression "(*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')" (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2)" ( (binary_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" * (cast_expression "(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 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    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    \n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "pcVar3 = *(code **)(*param_2 + 0x10);" (assignment_expression "pcVar3 = *(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 (pcVar3 != FUN_00173890) {\n                    \n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }" if (parenthesized_expression "(pcVar3 != FUN_00173890)" ( (binary_expression "pcVar3 != FUN_00173890" identifier != identifier) )) (compound_statement "{\n                    \n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }" { (expression_statement "local_135 = (*pcVar3)(param_2,local_78[0]);" (assignment_expression "local_135 = (*pcVar3)(param_2,local_78[0])" identifier = (call_expression "(*pcVar3)(param_2,local_78[0])" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(param_2,local_78[0])" ( identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (goto_statement "goto LAB_00170f04;" goto statement_identifier ;) })) (expression_statement "pcVar3 = *(code **)(*param_2 + 0x98);" (assignment_expression "pcVar3 = *(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 "bVar26 = pcVar3 < FUN_00173800;" (assignment_expression "bVar26 = pcVar3 < FUN_00173800" identifier = (binary_expression "pcVar3 < FUN_00173800" identifier < identifier)) ;) (expression_statement "bVar28 = pcVar3 == FUN_00173800;" (assignment_expression "bVar28 = pcVar3 == FUN_00173800" identifier = (binary_expression "pcVar3 == FUN_00173800" identifier == identifier)) ;) (if_statement "if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }" if (parenthesized_expression "(!bVar28)" ( (unary_expression "!bVar28" ! identifier) )) (compound_statement "{\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }" { (expression_statement "local_135 = (*pcVar3)(param_2,local_78[0]);" (assignment_expression "local_135 = (*pcVar3)(param_2,local_78[0])" identifier = (call_expression "(*pcVar3)(param_2,local_78[0])" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(param_2,local_78[0])" ( identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (goto_statement "goto LAB_00170f04;" goto statement_identifier ;) })) (expression_statement "lVar20 = 0xc;" (assignment_expression "lVar20 = 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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);" do (compound_statement "{\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar17 < *pbVar14;" (assignment_expression "bVar26 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar28 = *pbVar17 == *pbVar14;" (assignment_expression "bVar28 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar28)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = (!bVar26 && !bVar28) == bVar26;" (assignment_expression "bVar26 = (!bVar26 && !bVar28) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar28) == bVar26" (parenthesized_expression "(!bVar26 && !bVar28)" ( (binary_expression "!bVar26 && !bVar28" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar28" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }" { (expression_statement "lVar20 = 0x11;" (assignment_expression "lVar20 = 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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);" do (compound_statement "{\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" identifier = false) ;) (expression_statement "bVar26 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar26 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }" { (expression_statement "lVar20 = 0xc;" (assignment_expression "lVar20 = 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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);" do (compound_statement "{\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar28 = *pbVar17 < *pbVar14;" (assignment_expression "bVar28 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = (!bVar28 && !bVar26) == bVar28;" (assignment_expression "bVar26 = (!bVar28 && !bVar26) == bVar28" identifier = (binary_expression "(!bVar28 && !bVar26) == bVar28" (parenthesized_expression "(!bVar28 && !bVar26)" ( (binary_expression "!bVar28 && !bVar26" (unary_expression "!bVar28" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }" { (expression_statement "lVar20 = 0x11;" (assignment_expression "lVar20 = 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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);" do (compound_statement "{\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" identifier = false) ;) (expression_statement "bVar26 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar26 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }" { (expression_statement "lVar20 = 9;" (assignment_expression "lVar20 = 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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);" do (compound_statement "{\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar28 = *pbVar17 < *pbVar14;" (assignment_expression "bVar28 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "local_135 = (!bVar28 && !bVar26) != bVar28;" (assignment_expression "local_135 = (!bVar28 && !bVar26) != bVar28" identifier = (binary_expression "(!bVar28 && !bVar26) != bVar28" (parenthesized_expression "(!bVar28 && !bVar26)" ( (binary_expression "!bVar28 && !bVar26" (unary_expression "!bVar28" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) != identifier)) ;) (goto_statement "goto LAB_00170f04;" goto statement_identifier ;) })) })) })) })) })) (expression_statement "local_135 = '\0';" (assignment_expression "local_135 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_00170f04:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);" do (compound_statement "{\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    }" { (expression_statement "uVar6 = param_5[1];" (assignment_expression "uVar6 = param_5[1]" identifier = (subscript_expression "param_5[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = uVar6 >> 0x18;" (assignment_expression "uVar4 = uVar6 >> 0x18" identifier = (binary_expression "uVar6 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar7 = param_5[2];" (assignment_expression "uVar7 = param_5[2]" identifier = (subscript_expression "param_5[2]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;" (assignment_expression "uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8" identifier = (binary_expression "((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8" (parenthesized_expression "((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18)" ( (binary_expression "(uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "(uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal)) )) >> number_literal)) ;) (expression_statement "uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;" (assignment_expression "uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" identifier = (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }" if (parenthesized_expression "(uVar21 < param_7)" ( (binary_expression "uVar21 < param_7" identifier < identifier) )) (compound_statement "{\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../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_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }" { (expression_statement "FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");" (call_expression "FUN_0018ff20("../../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 "lVar20 = (ulong)(uVar21 << 4) + param_8;" (assignment_expression "lVar20 = (ulong)(uVar21 << 4) + param_8" identifier = (binary_expression "(ulong)(uVar21 << 4) + param_8" (call_expression "(ulong)(uVar21 << 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar21 << 4)" ( (binary_expression "uVar21 << 4" identifier << number_literal) ))) + identifier)) ;) (expression_statement "uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;" (assignment_expression "uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8" identifier = (binary_expression "*(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8" (binary_expression "*(ushort *)(lVar20 + 0xe) << 8" (pointer_expression "*(ushort *)(lVar20 + 0xe)" * (cast_expression "(ushort *)(lVar20 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xe)" ( (binary_expression "lVar20 + 0xe" identifier + number_literal) )))) << number_literal) | (binary_expression "*(ushort *)(lVar20 + 0xe) >> 8" (pointer_expression "*(ushort *)(lVar20 + 0xe)" * (cast_expression "(ushort *)(lVar20 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xe)" ( (binary_expression "lVar20 + 0xe" identifier + number_literal) )))) >> number_literal))) ;) (expression_statement "uVar7 = (uint)uVar15;" (assignment_expression "uVar7 = (uint)uVar15" identifier = (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }" if (parenthesized_expression "(uVar15 < 0xff00)" ( (binary_expression "uVar15 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }" { (labeled_statement "LAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);" statement_identifier : (expression_statement "uVar21 = *(uint *)(lVar20 + 4);" (assignment_expression "uVar21 = *(uint *)(lVar20 + 4)" identifier = (pointer_expression "*(uint *)(lVar20 + 4)" * (cast_expression "(uint *)(lVar20 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 4)" ( (binary_expression "lVar20 + 4" identifier + number_literal) ))))) ;)) (expression_statement "uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;" (assignment_expression "uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18" identifier = (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18" (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8" (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8" (binary_expression "uVar21 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar21 & 0xff0000) >> 8" (parenthesized_expression "(uVar21 & 0xff0000)" ( (binary_expression "uVar21 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar21 & 0xff00) << 8" (parenthesized_expression "(uVar21 & 0xff00)" ( (binary_expression "uVar21 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar21 << 0x18" identifier << number_literal))) ;) (expression_statement "local_12c = uVar6 + uVar21;" (assignment_expression "local_12c = uVar6 + uVar21" identifier = (binary_expression "uVar6 + uVar21" identifier + identifier)) ;) (if_statement "if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }" { (expression_statement "local_50 = CONCAT44(local_50._4_4_,uVar7);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,uVar7)" identifier = (call_expression "CONCAT44(local_50._4_4_,uVar7)" identifier (argument_list "(local_50._4_4_,uVar7)" ( (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_00177b00(local_160,&local_58);" (call_expression "FUN_00177b00(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (if_statement "if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;" if (parenthesized_expression "((*(byte *)(lVar20 + 0xc) & 0xf) == 3)" ( (binary_expression "(*(byte *)(lVar20 + 0xc) & 0xf) == 3" (parenthesized_expression "(*(byte *)(lVar20 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(lVar20 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar20 + 0xc)" * (cast_expression "(byte *)(lVar20 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xc)" ( (binary_expression "lVar20 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00171112;" goto statement_identifier ;)) (labeled_statement "LAB_00170fb2:\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_00177c80(local_158,&local_58);" (call_expression "FUN_00177c80(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (goto_statement "goto LAB_00170fcd;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }" else (compound_statement "{\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }" { (if_statement "if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }" if (parenthesized_expression "(uVar15 == 0xffff)" ( (binary_expression "uVar15 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }" { (expression_statement "lVar11 = *(long *)(param_3 + 0x40);" (assignment_expression "lVar11 = *(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 (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }" { (expression_statement "lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);" (assignment_expression "lVar11 = (**(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) = lVar11;" (assignment_expression "*(long *)(param_3 + 0x40) = lVar11" (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 "uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);" (assignment_expression "uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21)" identifier = (call_expression "FUN_001d1ac0(lVar11,param_3,uVar21)" identifier (argument_list "(lVar11,param_3,uVar21)" ( identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_001710c0;" goto statement_identifier ;) })) (expression_statement "uVar21 = *(uint *)(lVar20 + 4);" (assignment_expression "uVar21 = *(uint *)(lVar20 + 4)" identifier = (pointer_expression "*(uint *)(lVar20 + 4)" * (cast_expression "(uint *)(lVar20 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 4)" ( (binary_expression "lVar20 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;" (assignment_expression "uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18" identifier = (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18" (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8" (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8" (binary_expression "uVar21 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar21 & 0xff0000) >> 8" (parenthesized_expression "(uVar21 & 0xff0000)" ( (binary_expression "uVar21 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar21 & 0xff00) << 8" (parenthesized_expression "(uVar21 & 0xff00)" ( (binary_expression "uVar21 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar21 << 0x18" identifier << number_literal))) ;) (expression_statement "local_12c = uVar6 + uVar21;" (assignment_expression "local_12c = uVar6 + uVar21" identifier = (binary_expression "uVar6 + uVar21" identifier + identifier)) ;) (if_statement "if (!bVar25) goto LAB_00171042;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_00171042;" 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_00177b00(local_160,&local_58);" (call_expression "FUN_00177b00(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (if_statement "if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;" if (parenthesized_expression "((*(byte *)(lVar20 + 0xc) & 0xf) != 3)" ( (binary_expression "(*(byte *)(lVar20 + 0xc) & 0xf) != 3" (parenthesized_expression "(*(byte *)(lVar20 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(lVar20 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar20 + 0xc)" * (cast_expression "(byte *)(lVar20 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xc)" ( (binary_expression "lVar20 + 0xc" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00170fb2;" goto statement_identifier ;)) (labeled_statement "LAB_00171112:\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_00177c80(local_158,&local_58);" (call_expression "FUN_00177c80(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (labeled_statement "LAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;" statement_identifier : (expression_statement "local_58 = (byte *)(ulong)uVar21;" (assignment_expression "local_58 = (byte *)(ulong)uVar21" identifier = (cast_expression "(byte *)(ulong)uVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar21" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;)) (expression_statement "local_50 = (ulong)(int)uVar6;" (assignment_expression "local_50 = (ulong)(int)uVar6" identifier = (cast_expression "(ulong)(int)uVar6" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "FUN_00177e20(local_168,&local_58);" (call_expression "FUN_00177e20(local_168,&local_58)" identifier (argument_list "(local_168,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "uVar6 = *param_5;" (assignment_expression "uVar6 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) (expression_statement "local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);" (assignment_expression "local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" identifier = (cast_expression "(byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" ( (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal)) ))))) ;) (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_00177450(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_00177450(local_148,puVar1,&local_58);\n          }" { (expression_statement "FUN_00177450(local_148,puVar1,&local_58);" (call_expression "FUN_00177450(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_00177fb0(local_170,&local_88);" (call_expression "FUN_00177fb0(local_170,&local_88)" identifier (argument_list "(local_170,&local_88)" ( identifier , (pointer_expression "&local_88" & identifier) ))) ;) (if_statement "if (!bVar26) goto LAB_00171042;" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (goto_statement "goto LAB_00171042;" goto statement_identifier ;)) }))) (expression_statement "local_118 = param_3;" (assignment_expression "local_118 = param_3" identifier = identifier) ;) (if_statement "if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1))" ( (binary_expression "(local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)" (parenthesized_expression "(local_135 == '\0')" ( (binary_expression "local_135 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((*(byte *)(lVar20 + 0xc) & 0xf) == 1)" ( (binary_expression "(*(byte *)(lVar20 + 0xc) & 0xf) == 1" (parenthesized_expression "(*(byte *)(lVar20 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(lVar20 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar20 + 0xc)" * (cast_expression "(byte *)(lVar20 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xc)" ( (binary_expression "lVar20 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }" { (labeled_statement "LAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;" statement_identifier : (if_statement "if (param_4 != uVar7) goto LAB_001711e3;" if (parenthesized_expression "(param_4 != uVar7)" ( (binary_expression "param_4 != uVar7" identifier != identifier) )) (goto_statement "goto LAB_001711e3;" goto statement_identifier ;))) }) (else_clause "else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" { (expression_statement "lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" { (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../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 *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }" if (parenthesized_expression "((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0))))" ( (binary_expression "(*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))" (parenthesized_expression "(*(char *)(lVar11 + 0x2a61) != '\0')" ( (binary_expression "*(char *)(lVar11 + 0x2a61) != '\0'" (pointer_expression "*(char *)(lVar11 + 0x2a61)" * (cast_expression "(char *)(lVar11 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x2a61)" ( (binary_expression "lVar11 + 0x2a61" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))" ( (parenthesized_expression "(uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0))" ( (binary_expression "uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)" (binary_expression "uVar4 < 0x3b" identifier < number_literal) && (parenthesized_expression "((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)" ( (binary_expression "(0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0" (parenthesized_expression "(0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1)" ( (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1" (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)uVar4 & 0x3f)" ( (binary_expression "(ulong)uVar4 & 0x3f" (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }" { (expression_statement "local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);" (assignment_expression "local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8)" identifier = (call_expression "(uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8)" ( (binary_expression "*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8" (binary_expression "*(ushort *)(lVar20 + 0xe) << 8" (pointer_expression "*(ushort *)(lVar20 + 0xe)" * (cast_expression "(ushort *)(lVar20 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xe)" ( (binary_expression "lVar20 + 0xe" identifier + number_literal) )))) << number_literal) | (binary_expression "*(ushort *)(lVar20 + 0xe) >> 8" (pointer_expression "*(ushort *)(lVar20 + 0xe)" * (cast_expression "(ushort *)(lVar20 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0xe)" ( (binary_expression "lVar20 + 0xe" identifier + number_literal) )))) >> 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_00174bc0(local_e8,&local_a8,&local_e8,1);" (call_expression "FUN_00174bc0(local_e8,&local_a8,&local_e8,1)" identifier (argument_list "(local_e8,&local_a8,&local_e8,1)" ( identifier , (pointer_expression "&local_a8" & identifier) , (pointer_expression "&local_e8" & identifier) , number_literal ))) ;) (goto_statement "goto LAB_001711d0;" goto statement_identifier ;) })) (if_statement "if (param_4 == uVar7) goto LAB_00171042;" if (parenthesized_expression "(param_4 == uVar7)" ( (binary_expression "param_4 == uVar7" identifier == identifier) )) (goto_statement "goto LAB_00171042;" goto statement_identifier ;)) (labeled_statement "LAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" statement_identifier : (if_statement "if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(lVar11 + 0x2809) != '\0')" ( (binary_expression "*(char *)(lVar11 + 0x2809) != '\0'" (pointer_expression "*(char *)(lVar11 + 0x2809)" * (cast_expression "(char *)(lVar11 + 0x2809)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x2809)" ( (binary_expression "lVar11 + 0x2809" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" { (expression_statement "lVar11 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar11 = *(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 "lVar20 = lVar11 + 0x28;" (assignment_expression "lVar20 = lVar11 + 0x28" identifier = (binary_expression "lVar11 + 0x28" identifier + number_literal)) ;) (expression_statement "local_88 = local_118;" (assignment_expression "local_88 = local_118" identifier = identifier) ;) (expression_statement "lVar12 = lVar20;" (assignment_expression "lVar12 = lVar20" identifier = identifier) ;) (expression_statement "lVar10 = *(long *)(lVar11 + 0x30);" (assignment_expression "lVar10 = *(long *)(lVar11 + 0x30)" identifier = (pointer_expression "*(long *)(lVar11 + 0x30)" * (cast_expression "(long *)(lVar11 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x30)" ( (binary_expression "lVar11 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_98 = param_3;" (assignment_expression "local_98 = param_3" identifier = identifier) ;) (expression_statement "local_90 = param_4;" (assignment_expression "local_90 = param_4" identifier = identifier) ;) (expression_statement "local_80 = uVar7;" (assignment_expression "local_80 = uVar7" identifier = identifier) ;) (if_statement "if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }" if (parenthesized_expression "(*(long *)(lVar11 + 0x30) == 0)" ( (binary_expression "*(long *)(lVar11 + 0x30) == 0" (pointer_expression "*(long *)(lVar11 + 0x30)" * (cast_expression "(long *)(lVar11 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x30)" ( (binary_expression "lVar11 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }" { (labeled_statement "LAB_00171288:\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 "lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);" (assignment_expression "lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea)" identifier = (call_expression "FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea)" identifier (argument_list "(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&DAT_0038b644" & identifier) , (pointer_expression "&local_c8" & identifier) , (pointer_expression "&local_ea" & identifier) )))) ;) }) (else_clause "else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }" else (compound_statement "{\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }" { (do_statement "do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);" do (compound_statement "{\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              }" { (while_statement "while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }" while (parenthesized_expression "((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       )))" ( (parenthesized_expression "(lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))" ( (comma_expression "lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       )" (assignment_expression "lVar8 = lVar10" identifier = identifier) , (binary_expression "*(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       )" (binary_expression "*(byte **)(lVar8 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar8 + 0x20)" * (cast_expression "(byte **)(lVar8 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar8 + 0x20)" ( (binary_expression "lVar8 + 0x20" identifier + number_literal) )))) < identifier) || (parenthesized_expression "((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       )" ( (parenthesized_expression "(param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))" ( (binary_expression "param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar8 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar8 + 0x20)" * (cast_expression "(byte **)(lVar8 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar8 + 0x20)" ( (binary_expression "lVar8 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(lVar8 + 0x28) < param_4)" ( (binary_expression "*(uint *)(lVar8 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar8 + 0x28)" * (cast_expression "(uint *)(lVar8 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x28)" ( (binary_expression "lVar8 + 0x28" identifier + number_literal) )))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }" { (expression_statement "plVar2 = (long *)(lVar8 + 0x18);" (assignment_expression "plVar2 = (long *)(lVar8 + 0x18)" identifier = (cast_expression "(long *)(lVar8 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x18)" ( (binary_expression "lVar8 + 0x18" identifier + number_literal) )))) ;) (expression_statement "lVar8 = lVar12;" (assignment_expression "lVar8 = lVar12" identifier = identifier) ;) (expression_statement "lVar10 = *plVar2;" (assignment_expression "lVar10 = *plVar2" identifier = (pointer_expression "*plVar2" * identifier)) ;) (if_statement "if (*plVar2 == 0) goto LAB_0017126a;" if (parenthesized_expression "(*plVar2 == 0)" ( (binary_expression "*plVar2 == 0" (pointer_expression "*plVar2" * identifier) == number_literal) )) (goto_statement "goto LAB_0017126a;" goto statement_identifier ;)) })) (expression_statement "lVar12 = lVar8;" (assignment_expression "lVar12 = lVar8" identifier = identifier) ;) (expression_statement "lVar10 = *(long *)(lVar8 + 0x10);" (assignment_expression "lVar10 = *(long *)(lVar8 + 0x10)" identifier = (pointer_expression "*(long *)(lVar8 + 0x10)" * (cast_expression "(long *)(lVar8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x10)" ( (binary_expression "lVar8 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(long *)(lVar8 + 0x10) != 0)" ( (binary_expression "*(long *)(lVar8 + 0x10) != 0" (pointer_expression "*(long *)(lVar8 + 0x10)" * (cast_expression "(long *)(lVar8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x10)" ( (binary_expression "lVar8 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_0017126a:\n              bVar26 = lVar8 == lVar20;" statement_identifier : (expression_statement "bVar26 = lVar8 == lVar20;" (assignment_expression "bVar26 = lVar8 == lVar20" identifier = (binary_expression "lVar8 == lVar20" identifier == identifier)) ;)) (expression_statement "lVar20 = lVar8;" (assignment_expression "lVar20 = lVar8" identifier = identifier) ;) (if_statement "if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;" if (parenthesized_expression "(((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))" ( (binary_expression "((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28))))" (parenthesized_expression "((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20)))" ( (binary_expression "(bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))" (parenthesized_expression "(bVar26)" ( identifier )) || (parenthesized_expression "(param_3 < *(byte **)(lVar8 + 0x20))" ( (binary_expression "param_3 < *(byte **)(lVar8 + 0x20)" identifier < (pointer_expression "*(byte **)(lVar8 + 0x20)" * (cast_expression "(byte **)(lVar8 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar8 + 0x20)" ( (binary_expression "lVar8 + 0x20" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28))))" ( (parenthesized_expression "(param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))" ( (binary_expression "param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar8 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar8 + 0x20)" * (cast_expression "(byte **)(lVar8 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar8 + 0x20)" ( (binary_expression "lVar8 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(param_4 < *(uint *)(lVar8 + 0x28))" ( (binary_expression "param_4 < *(uint *)(lVar8 + 0x28)" identifier < (pointer_expression "*(uint *)(lVar8 + 0x28)" * (cast_expression "(uint *)(lVar8 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x28)" ( (binary_expression "lVar8 + 0x28" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_00171288;" goto statement_identifier ;)) }))) (expression_statement "local_d0 = lVar8 + 0x30;" (assignment_expression "local_d0 = lVar8 + 0x30" identifier = (binary_expression "lVar8 + 0x30" identifier + number_literal)) ;) (expression_statement "FUN_00174c60(local_d0,&local_88,&local_d0,1);" (call_expression "FUN_00174c60(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 "plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);" (assignment_expression "plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0045c708 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0045c708 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x18)" ( (binary_expression "PTR_DAT_0045c708 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }" if (parenthesized_expression "(plVar2 == (long *)0x0)" ( (binary_expression "plVar2 == (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_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }" { (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_0018ff20("../../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 **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }" if (parenthesized_expression "(*(code **)(*plVar2 + 0x208) != FUN_00172d60)" ( (binary_expression "*(code **)(*plVar2 + 0x208) != FUN_00172d60" (pointer_expression "*(code **)(*plVar2 + 0x208)" * (cast_expression "(code **)(*plVar2 + 0x208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x208)" ( (binary_expression "*plVar2 + 0x208" (pointer_expression "*plVar2" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }" { (expression_statement "(**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);" (call_expression "(**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c)" (parenthesized_expression "(**(code **)(*plVar2 + 0x208))" ( (pointer_expression "**(code **)(*plVar2 + 0x208)" * (pointer_expression "*(code **)(*plVar2 + 0x208)" * (cast_expression "(code **)(*plVar2 + 0x208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x208)" ( (binary_expression "*plVar2 + 0x208" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 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              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }" { (expression_statement "lVar20 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar20 = *(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 "sVar9 = strlen((char *)local_140);" (assignment_expression "sVar9 = 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_00174550(&local_58,local_140,local_140 + sVar9);" (call_expression "FUN_00174550(&local_58,local_140,local_140 + sVar9)" identifier (argument_list "(&local_58,local_140,local_140 + sVar9)" ( (pointer_expression "&local_58" & identifier) , identifier , (binary_expression "local_140 + sVar9" identifier + identifier) ))) ;) (expression_statement "lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);" (assignment_expression "lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58)" identifier = (call_expression "FUN_001775a0(lVar20 + 0x88,&local_58)" identifier (argument_list "(lVar20 + 0x88,&local_58)" ( (binary_expression "lVar20 + 0x88" identifier + number_literal) , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (local_58 != local_48) {\n                FUN_002f1e60();\n              }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n                FUN_002f1e60();\n              }" { (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar11 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar11 = *(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 (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }" if (parenthesized_expression "(lVar20 != lVar11 + 0x90)" ( (binary_expression "lVar20 != lVar11 + 0x90" identifier != (binary_expression "lVar11 + 0x90" identifier + number_literal)) )) (compound_statement "{\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }" { (expression_statement "lVar12 = lVar11 + 0x28;" (assignment_expression "lVar12 = lVar11 + 0x28" identifier = (binary_expression "lVar11 + 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 "lVar10 = lVar12;" (assignment_expression "lVar10 = lVar12" identifier = identifier) ;) (expression_statement "lVar8 = *(long *)(lVar11 + 0x30);" (assignment_expression "lVar8 = *(long *)(lVar11 + 0x30)" identifier = (pointer_expression "*(long *)(lVar11 + 0x30)" * (cast_expression "(long *)(lVar11 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x30)" ( (binary_expression "lVar11 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }" if (parenthesized_expression "(*(long *)(lVar11 + 0x30) == 0)" ( (binary_expression "*(long *)(lVar11 + 0x30) == 0" (pointer_expression "*(long *)(lVar11 + 0x30)" * (cast_expression "(long *)(lVar11 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x30)" ( (binary_expression "lVar11 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }" { (labeled_statement "LAB_001717c0:\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 "lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);" (assignment_expression "lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9)" identifier = (call_expression "FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9)" identifier (argument_list "(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&DAT_0038b644" & identifier) , (pointer_expression "&local_c0" & identifier) , (pointer_expression "&local_e9" & identifier) )))) ;) }) (else_clause "else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }" else (compound_statement "{\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }" { (do_statement "do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);" do (compound_statement "{\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  }" { (while_statement "while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }" while (parenthesized_expression "((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)))))" ( (parenthesized_expression "(lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))" ( (comma_expression "lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)))" (assignment_expression "lVar13 = lVar8" identifier = identifier) , (binary_expression "*(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)))" (binary_expression "*(byte **)(lVar13 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar13 + 0x20)" * (cast_expression "(byte **)(lVar13 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x20)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) )))) < identifier) || (parenthesized_expression "((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)))" ( (parenthesized_expression "(param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))" ( (binary_expression "param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar13 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar13 + 0x20)" * (cast_expression "(byte **)(lVar13 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x20)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(lVar13 + 0x28) < param_4)" ( (binary_expression "*(uint *)(lVar13 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar13 + 0x28)" * (cast_expression "(uint *)(lVar13 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x28)" ( (binary_expression "lVar13 + 0x28" identifier + number_literal) )))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }" { (expression_statement "plVar2 = (long *)(lVar13 + 0x18);" (assignment_expression "plVar2 = (long *)(lVar13 + 0x18)" identifier = (cast_expression "(long *)(lVar13 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x18)" ( (binary_expression "lVar13 + 0x18" identifier + number_literal) )))) ;) (expression_statement "lVar13 = lVar10;" (assignment_expression "lVar13 = lVar10" identifier = identifier) ;) (expression_statement "lVar8 = *plVar2;" (assignment_expression "lVar8 = *plVar2" identifier = (pointer_expression "*plVar2" * identifier)) ;) (if_statement "if (*plVar2 == 0) goto LAB_001713d2;" if (parenthesized_expression "(*plVar2 == 0)" ( (binary_expression "*plVar2 == 0" (pointer_expression "*plVar2" * identifier) == number_literal) )) (goto_statement "goto LAB_001713d2;" goto statement_identifier ;)) })) (expression_statement "lVar10 = lVar13;" (assignment_expression "lVar10 = lVar13" identifier = identifier) ;) (expression_statement "lVar8 = *(long *)(lVar13 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar13 + 0x10)" identifier = (pointer_expression "*(long *)(lVar13 + 0x10)" * (cast_expression "(long *)(lVar13 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x10)" ( (binary_expression "lVar13 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(long *)(lVar13 + 0x10) != 0)" ( (binary_expression "*(long *)(lVar13 + 0x10) != 0" (pointer_expression "*(long *)(lVar13 + 0x10)" * (cast_expression "(long *)(lVar13 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x10)" ( (binary_expression "lVar13 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_001713d2:\n                  bVar26 = lVar12 == lVar13;" statement_identifier : (expression_statement "bVar26 = lVar12 == lVar13;" (assignment_expression "bVar26 = lVar12 == lVar13" identifier = (binary_expression "lVar12 == lVar13" identifier == identifier)) ;)) (expression_statement "lVar12 = lVar13;" (assignment_expression "lVar12 = lVar13" identifier = identifier) ;) (if_statement "if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;" if (parenthesized_expression "(((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28)))))" ( (binary_expression "((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))" (parenthesized_expression "((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20)))" ( (binary_expression "(bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))" (parenthesized_expression "(bVar26)" ( identifier )) || (parenthesized_expression "(param_3 < *(byte **)(lVar13 + 0x20))" ( (binary_expression "param_3 < *(byte **)(lVar13 + 0x20)" identifier < (pointer_expression "*(byte **)(lVar13 + 0x20)" * (cast_expression "(byte **)(lVar13 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x20)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))" ( (parenthesized_expression "(local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28)))" ( (comma_expression "local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))" (assignment_expression "local_58 = param_3" identifier = identifier) , (binary_expression "param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar13 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar13 + 0x20)" * (cast_expression "(byte **)(lVar13 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x20)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(param_4 < *(uint *)(lVar13 + 0x28))" ( (binary_expression "param_4 < *(uint *)(lVar13 + 0x28)" identifier < (pointer_expression "*(uint *)(lVar13 + 0x28)" * (cast_expression "(uint *)(lVar13 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x28)" ( (binary_expression "lVar13 + 0x28" identifier + number_literal) ))))) )))) )) ))) )) (goto_statement "goto LAB_001717c0;" goto statement_identifier ;)) }))) (for_statement "for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }" for ( (assignment_expression "puVar1 = *(undefined8 **)(lVar20 + 0x50)" identifier = (pointer_expression "*(undefined8 **)(lVar20 + 0x50)" * (cast_expression "(undefined8 **)(lVar20 + 0x50)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar20 + 0x50)" ( (binary_expression "lVar20 + 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 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }" { (expression_statement "local_d8 = lVar13 + 0x30;" (assignment_expression "local_d8 = lVar13 + 0x30" identifier = (binary_expression "lVar13 + 0x30" identifier + number_literal)) ;) (expression_statement "FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);" (call_expression "FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1)" identifier (argument_list "(lVar13 + 0x30,puVar1 + 1,&local_d8,1)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) , (binary_expression "puVar1 + 1" identifier + number_literal) , (pointer_expression "&local_d8" & identifier) , number_literal ))) ;) })) })) })) }))) }))) }) (else_clause "else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }" else (compound_statement "{\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }" { (if_statement "if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" if (parenthesized_expression "(uVar21 < *(uint *)(param_3 + 0x120))" ( (binary_expression "uVar21 < *(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_001716a8:\n                    \n          FUN_0018ff20("../../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_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");" statement_identifier : (expression_statement "FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");" (call_expression "FUN_0018ff20("../../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 "uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));" (assignment_expression "uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120))" identifier = (call_expression "(ulong)(uVar21 - *(uint *)(param_3 + 0x120))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar21 - *(uint *)(param_3 + 0x120))" ( (binary_expression "uVar21 - *(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) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }" if (parenthesized_expression "((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22)" ( (binary_expression "(ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22" (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_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }" { (expression_statement "FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");" (call_expression "FUN_0018ff20("../../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) + uVar22 * 8);" (assignment_expression "local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8)" identifier = (pointer_expression "*(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8)" * (cast_expression "(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_3 + 0x130) + uVar22 * 8)" ( (binary_expression "*(long *)(param_3 + 0x130) + uVar22 * 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 "uVar22 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (local_88 == (byte *)0x0) goto LAB_001716a8;" 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_001716a8;" goto statement_identifier ;)) (if_statement "if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(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_00284df0(param_1,local_88);\n        }" { (expression_statement "local_88 = (byte *)FUN_00284df0(param_1,local_88);" (assignment_expression "local_88 = (byte *)FUN_00284df0(param_1,local_88)" identifier = (cast_expression "(byte *)FUN_00284df0(param_1,local_88)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00284df0(param_1,local_88)" identifier (argument_list "(param_1,local_88)" ( identifier , identifier ))))) ;) })) (if_statement "if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\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 *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }" { (expression_statement "pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);" (assignment_expression "pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40)" identifier = (binary_expression "(byte *)(ulong)*(uint *)(local_88 + 0x40)" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_118 = *(byte **)(local_88 + 0x10);" (assignment_expression "local_118 = *(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_12c = uVar6 + *(uint *)(local_88 + 0x40);" (assignment_expression "local_12c = uVar6 + *(uint *)(local_88 + 0x40)" identifier = (binary_expression "uVar6 + *(uint *)(local_88 + 0x40)" identifier + (pointer_expression "*(uint *)(local_88 + 0x40)" * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) )))))) ;) (if_statement "if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }" if (parenthesized_expression "((local_118[0x3c] & 1) == 0)" ( (binary_expression "(local_118[0x3c] & 1) == 0" (parenthesized_expression "(local_118[0x3c] & 1)" ( (binary_expression "local_118[0x3c] & 1" (subscript_expression "local_118[0x3c]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }" { (expression_statement "uVar7 = *(uint *)(local_88 + 0x18);" (assignment_expression "uVar7 = *(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 "bVar19 = local_88[0x3b] >> 5 & 1;" (assignment_expression "bVar19 = 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 "uVar23 = (local_88[0x38] & 0xf) < 2;" (assignment_expression "uVar23 = (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 "uVar27 = (local_88[0x38] & 0xf) == 2;" (assignment_expression "uVar27 = (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)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }" if (parenthesized_expression "((bool)uVar27)" ( (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar27 = local_135 == '\0';" (assignment_expression "uVar27 = local_135 == '\0'" identifier = (binary_expression "local_135 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }" if (parenthesized_expression "(!(bool)uVar27)" ( (unary_expression "!(bool)uVar27" ! (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }" { (expression_statement "uVar23 = false;" (assignment_expression "uVar23 = false" identifier = false) ;) (expression_statement "uVar27 = bVar19 == 0;" (assignment_expression "uVar27 = bVar19 == 0" identifier = (binary_expression "bVar19 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }" if (parenthesized_expression "(!(bool)uVar27)" ( (unary_expression "!(bool)uVar27" ! (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }" { (if_statement "if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }" { (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../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_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }" { (expression_statement "uVar23 = false;" (assignment_expression "uVar23 = false" identifier = false) ;) (expression_statement "uVar27 = (local_88[0x39] & 3) == 0;" (assignment_expression "uVar27 = (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)uVar27) goto LAB_00171878;" if (parenthesized_expression "(!(bool)uVar27)" ( (unary_expression "!(bool)uVar27" ! (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00171878;" goto statement_identifier ;)) })) (expression_statement "uVar23 = uVar4 < 0x3a;" (assignment_expression "uVar23 = uVar4 < 0x3a" identifier = (binary_expression "uVar4 < 0x3a" identifier < number_literal)) ;) (expression_statement "uVar27 = uVar4 == 0x3a;" (assignment_expression "uVar27 = uVar4 == 0x3a" identifier = (binary_expression "uVar4 == 0x3a" identifier == number_literal)) ;) (if_statement "if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;" if (parenthesized_expression "((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     ))" ( (binary_expression "(0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )" (parenthesized_expression "(0x3a < uVar4)" ( (binary_expression "0x3a < uVar4" number_literal < identifier) )) || (parenthesized_expression "(uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )" ( (comma_expression "uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23" (assignment_expression "uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0" identifier = (binary_expression "(0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0" (parenthesized_expression "(0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1)" ( (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1" (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)uVar4 & 0x3f)" ( (binary_expression "(ulong)uVar4 & 0x3f" (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal)) , (unary_expression "!(bool)uVar23" ! (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_001714f0;" goto statement_identifier ;)) })) (labeled_statement "LAB_00171878:\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_118;" (assignment_expression "local_b8 = local_118" identifier = identifier) ;) (expression_statement "local_b0 = uVar7;" (assignment_expression "local_b0 = uVar7" identifier = identifier) ;) (expression_statement "FUN_00174bc0(local_e0,&local_b8,&local_e0,1);" (call_expression "FUN_00174bc0(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 ))) ;) })) })) }) (else_clause "else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }" else (compound_statement "{\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }" { (expression_statement "local_118 = (byte *)0x0;" (assignment_expression "local_118 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar27 = 1;" (assignment_expression "uVar27 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }" else (compound_statement "{\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }" { (expression_statement "pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);" (assignment_expression "pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40)" identifier = (binary_expression "(byte *)(ulong)*(uint *)(local_88 + 0x40)" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "local_118 = (byte *)0x0;" (assignment_expression "local_118 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_12c = uVar6 + *(uint *)(local_88 + 0x40);" (assignment_expression "local_12c = uVar6 + *(uint *)(local_88 + 0x40)" identifier = (binary_expression "uVar6 + *(uint *)(local_88 + 0x40)" identifier + (pointer_expression "*(uint *)(local_88 + 0x40)" * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) )))))) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar27 = 1;" (assignment_expression "uVar27 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_001714f0:\n        pbVar14 = *(byte **)local_88;" statement_identifier : (expression_statement "pbVar14 = *(byte **)local_88;" (assignment_expression "pbVar14 = *(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 "lVar20 = 8;" (assignment_expression "lVar20 = 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 = pbVar14;" (assignment_expression "pbVar18 = pbVar14" identifier = identifier) ;) (do_statement "do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);" do (compound_statement "{\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "uVar23 = *pbVar16 < *pbVar18;" (assignment_expression "uVar23 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "uVar27 = *pbVar16 == *pbVar18;" (assignment_expression "uVar27 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar27)" ( (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;" (assignment_expression "bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23" identifier = (binary_expression "(!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23" (parenthesized_expression "(!(bool)uVar23 && !(bool)uVar27)" ( (binary_expression "!(bool)uVar23 && !(bool)uVar27" (unary_expression "!(bool)uVar23" ! (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar27" ! (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }" if (parenthesized_expression "(bVar28)" ( identifier )) (compound_statement "{\n          pbVar14 = pbVar14 + 8;\n        }" { (expression_statement "pbVar14 = pbVar14 + 8;" (assignment_expression "pbVar14 = pbVar14 + 8" identifier = (binary_expression "pbVar14 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }" else (compound_statement "{\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }" { (expression_statement "lVar20 = 7;" (assignment_expression "lVar20 = 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 = pbVar14;" (assignment_expression "pbVar18 = pbVar14" identifier = identifier) ;) (do_statement "do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);" do (compound_statement "{\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          }" { (if_statement "if (lVar20 == 0) break;" if (parenthesized_expression "(lVar20 == 0)" ( (binary_expression "lVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" identifier = (binary_expression "lVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar16 < *pbVar18;" (assignment_expression "bVar26 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar28 = *pbVar16 == *pbVar18;" (assignment_expression "bVar28 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar28)" ( identifier )) ;) (expression_statement "pbVar14 = pbVar14 + 7;" (assignment_expression "pbVar14 = pbVar14 + 7" identifier = (binary_expression "pbVar14 + 7" identifier + number_literal)) ;) (if_statement "if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }" if (parenthesized_expression "((!bVar26 && !bVar28) != bVar26)" ( (binary_expression "(!bVar26 && !bVar28) != bVar26" (parenthesized_expression "(!bVar26 && !bVar28)" ( (binary_expression "!bVar26 && !bVar28" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar28" ! identifier)) )) != identifier) )) (compound_statement "{\n            pbVar14 = local_140;\n          }" { (expression_statement "pbVar14 = local_140;" (assignment_expression "pbVar14 = local_140" identifier = identifier) ;) })) }))) (expression_statement "local_140 = pbVar14;" (assignment_expression "local_140 = pbVar14" identifier = identifier) ;) (if_statement "if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }" { (if_statement "if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (compound_statement "{\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(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_00177b00(local_160,&local_58);" (call_expression "FUN_00177b00(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }" else (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }" { (expression_statement "local_50 = CONCAT44(local_50._4_4_,uVar7);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,uVar7)" identifier = (call_expression "CONCAT44(local_50._4_4_,uVar7)" identifier (argument_list "(local_50._4_4_,uVar7)" ( (field_expression "local_50._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_58 = local_118;" (assignment_expression "local_58 = local_118" identifier = identifier) ;) (expression_statement "FUN_00177b00(local_160,&local_58);" (call_expression "FUN_00177b00(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_00174210(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_00174210(local_158,puVar1,&local_88);\n          }" { (expression_statement "FUN_00174210(local_158,puVar1,&local_88);" (call_expression "FUN_00174210(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_50 = (ulong)(int)uVar6;" (assignment_expression "local_50 = (ulong)(int)uVar6" identifier = (cast_expression "(ulong)(int)uVar6" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_58 = pbVar17;" (assignment_expression "local_58 = pbVar17" identifier = identifier) ;) (expression_statement "FUN_00177e20(local_168,&local_58);" (call_expression "FUN_00177e20(local_168,&local_58)" identifier (argument_list "(local_168,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "uVar6 = *param_5;" (assignment_expression "uVar6 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) (expression_statement "local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);" (assignment_expression "local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" identifier = (cast_expression "(byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" ( (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal)) ))))) ;) (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_00177450(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_00177450(local_148,puVar1,&local_58);\n          }" { (expression_statement "FUN_00177450(local_148,puVar1,&local_58);" (call_expression "FUN_00177450(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_00177fb0(local_170,&local_98);" (call_expression "FUN_00177fb0(local_170,&local_98)" identifier (argument_list "(local_170,&local_98)" ( identifier , (pointer_expression "&local_98" & identifier) ))) ;) })) (if_statement "if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }" if (parenthesized_expression "(bVar19 != 0)" ( (binary_expression "bVar19 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }" { (labeled_statement "LAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);" statement_identifier : (expression_statement "lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) ))))) ;)) (if_statement "if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" { (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (goto_statement "goto LAB_001711f7;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00171042:\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_002f1e60();\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_002f1e60();\n  }" { (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" 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 (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (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 = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (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 , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT < LIT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) & LIT) )) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) ))) )) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) ;) (labeled_statement statement_identifier : (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 = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (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 { (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)) ;) (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 ))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) << LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00170e10(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)\n\n{\n  undefined8 *puVar1;\n  long *plVar2;\n  code *pcVar3;\n  uint uVar4;\n  char cVar5;\n  uint uVar6;\n  uint uVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  byte *pbVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte bVar19;\n  long lVar20;\n  uint uVar21;\n  ulong uVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  undefined1 uVar27;\n  bool bVar28;\n  byte bVar29;\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  int local_12c;\n  byte *local_118;\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  bVar29 = 0;\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_00174550(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_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\nLAB_00170ea5:\n    bVar25 = 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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    \n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00170f04:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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_002f1e60();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00170e10(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)" (identifier "FUN_00170e10") (parameter_list "(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "byte *param_3" (type_identifier "byte") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "uint *param_5" (type_identifier "uint") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "long param_6" (sized_type_specifier "long" (long "long")) (identifier "param_6")) (, ",") (parameter_declaration "ulong param_7" (type_identifier "ulong") (identifier "param_7")) (, ",") (parameter_declaration "long param_8" (sized_type_specifier "long" (long "long")) (identifier "param_8")) () ")"))) (compound_statement "{\n  undefined8 *puVar1;\n  long *plVar2;\n  code *pcVar3;\n  uint uVar4;\n  char cVar5;\n  uint uVar6;\n  uint uVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  byte *pbVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte bVar19;\n  long lVar20;\n  uint uVar21;\n  ulong uVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  undefined1 uVar27;\n  bool bVar28;\n  byte bVar29;\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  int local_12c;\n  byte *local_118;\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  bVar29 = 0;\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_00174550(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_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {\nLAB_00170ea5:\n    bVar25 = 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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }\n  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    \n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00170f04:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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_002f1e60();\n  }\n  return;\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "long *plVar2;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar2" (* "*") (identifier "plVar2")) (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "size_t sVar9;" (primitive_type "size_t") (identifier "sVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "long lVar13;" (sized_type_specifier "long" (long "long")) (identifier "lVar13") (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "ushort uVar15;" (type_identifier "ushort") (identifier "uVar15") (; ";")) (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 "byte bVar19;" (type_identifier "byte") (identifier "bVar19") (; ";")) (declaration "long lVar20;" (sized_type_specifier "long" (long "long")) (identifier "lVar20") (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "ulong uVar22;" (type_identifier "ulong") (identifier "uVar22") (; ";")) (declaration "undefined1 uVar23;" (type_identifier "undefined1") (identifier "uVar23") (; ";")) (declaration "bool bVar24;" (primitive_type "bool") (identifier "bVar24") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "bool bVar26;" (primitive_type "bool") (identifier "bVar26") (; ";")) (declaration "undefined1 uVar27;" (type_identifier "undefined1") (identifier "uVar27") (; ";")) (declaration "bool bVar28;" (primitive_type "bool") (identifier "bVar28") (; ";")) (declaration "byte bVar29;" (type_identifier "byte") (identifier "bVar29") (; ";")) (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 "int local_12c;" (primitive_type "int") (identifier "local_12c") (; ";")) (declaration "byte *local_118;" (type_identifier "byte") (pointer_declarator "*local_118" (* "*") (identifier "local_118")) (; ";")) (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 "bVar29 = 0;" (assignment_expression "bVar29 = 0" (identifier "bVar29") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0018ff20") (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_0045c708 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_00174550(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_0045c708 + 0x10) + 0x9050) == 0)" (( "(") (binary_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" (* "*") (cast_expression "(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" (( "(") (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x9050")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_78[0] = local_68;\n    FUN_00174550(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_00174550(local_78,"");" (call_expression "FUN_00174550(local_78,"")" (identifier "FUN_00174550") (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_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0018ff20") (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_0045c708 + 0x10) + 0x9050) == 0) {\nLAB_00170ea5:\n    bVar25 = 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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0)" (( "(") (binary_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" (* "*") (cast_expression "(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" (( "(") (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x9050")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00170ea5:\n    bVar25 = 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_00170ea5:\n    bVar25 = false;" (statement_identifier "LAB_00170ea5") (: ":") (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (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    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }" (else "else") (compound_statement "{\n    pbVar14 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar23 = 0;\n    uVar27 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }\n    FUN_00174550(&local_58,pbVar17,pbVar14);\n    lVar20 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar14 = local_58;\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);\n    bVar25 = false;\n    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n    if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_002f1e60(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_168 = local_160 + 0x30;\n    local_148 = local_160 + 0x48;\n    local_170 = local_160 + 0x60;\n    bVar25 = true;\n  }" ({ "{") (expression_statement "pbVar14 = (byte *)0xffffffffffffffff;" (assignment_expression "pbVar14 = (byte *)0xffffffffffffffff" (identifier "pbVar14") (= "=") (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 "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar27 = local_78[0] == (byte *)0x0;" (assignment_expression "uVar27 = local_78[0] == (byte *)0x0" (identifier "uVar27") (= "=") (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)uVar27) {\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }" (if "if") (parenthesized_expression "(!(bool)uVar27)" (( "(") (unary_expression "!(bool)uVar27" (! "!") (cast_expression "(bool)uVar27" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar27"))) () ")")) (compound_statement "{\n      sVar9 = strlen((char *)local_78[0]);\n      pbVar14 = pbVar17 + sVar9;\n    }" ({ "{") (expression_statement "sVar9 = strlen((char *)local_78[0]);" (assignment_expression "sVar9 = strlen((char *)local_78[0])" (identifier "sVar9") (= "=") (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 "pbVar14 = pbVar17 + sVar9;" (assignment_expression "pbVar14 = pbVar17 + sVar9" (identifier "pbVar14") (= "=") (binary_expression "pbVar17 + sVar9" (identifier "pbVar17") (+ "+") (identifier "sVar9"))) (; ";")) (} "}"))) (expression_statement "FUN_00174550(&local_58,pbVar17,pbVar14);" (call_expression "FUN_00174550(&local_58,pbVar17,pbVar14)" (identifier "FUN_00174550") (argument_list "(&local_58,pbVar17,pbVar14)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "pbVar17") (, ",") (identifier "pbVar14") () ")"))) (; ";")) (expression_statement "lVar20 = 5;" (assignment_expression "lVar20 = 5" (identifier "lVar20") (= "=") (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 "pbVar14 = local_58;" (assignment_expression "pbVar14 = local_58" (identifier "pbVar14") (= "=") (identifier "local_58")) (; ";")) (do_statement "do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while ((bool)uVar27);" (do "do") (compound_statement "{\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      uVar23 = *pbVar17 < *pbVar14;\n      uVar27 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar20 == 0) break;" (if "if") (parenthesized_expression "(lVar20 == 0)" (( "(") (binary_expression "lVar20 == 0" (identifier "lVar20") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" (identifier "lVar20") (= "=") (binary_expression "lVar20 + -1" (identifier "lVar20") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar23 = *pbVar17 < *pbVar14;" (assignment_expression "uVar23 = *pbVar17 < *pbVar14" (identifier "uVar23") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "uVar27 = *pbVar17 == *pbVar14;" (assignment_expression "uVar27 = *pbVar17 == *pbVar14" (identifier "uVar27") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar27)" (( "(") (cast_expression "(bool)uVar27" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar27")) () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;" (assignment_expression "bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23" (identifier "bVar26") (= "=") (binary_expression "(!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23" (parenthesized_expression "(!(bool)uVar23 && !(bool)uVar27)" (( "(") (binary_expression "!(bool)uVar23 && !(bool)uVar27" (unary_expression "!(bool)uVar23" (! "!") (cast_expression "(bool)uVar23" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar23"))) (&& "&&") (unary_expression "!(bool)uVar27" (! "!") (cast_expression "(bool)uVar27" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar27")))) () ")")) (== "==") (cast_expression "(bool)uVar23" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar23")))) (; ";")) (if_statement "if (!bVar26) {\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (compound_statement "{\n      lVar20 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar14 = local_58;\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }\n    }" ({ "{") (expression_statement "lVar20 = 0xf;" (assignment_expression "lVar20 = 0xf" (identifier "lVar20") (= "=") (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 "pbVar14 = local_58;" (assignment_expression "pbVar14 = local_58" (identifier "pbVar14") (= "=") (identifier "local_58")) (; ";")) (do_statement "do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);" (do "do") (compound_statement "{\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar25 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar20 == 0) break;" (if "if") (parenthesized_expression "(lVar20 == 0)" (( "(") (binary_expression "lVar20 == 0" (identifier "lVar20") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" (identifier "lVar20") (= "=") (binary_expression "lVar20 + -1" (identifier "lVar20") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar17 < *pbVar14;" (assignment_expression "bVar25 = *pbVar17 < *pbVar14" (identifier "bVar25") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" (identifier "bVar26") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar26) != bVar25) {\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }" (if "if") (parenthesized_expression "((!bVar25 && !bVar26) != bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar26) != bVar25" (parenthesized_expression "(!bVar25 && !bVar26)" (( "(") (binary_expression "!bVar25 && !bVar26" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (!= "!=") (identifier "bVar25")) () ")")) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_002f1e60(local_58);\n        }\n        goto LAB_00170ea5;\n      }" ({ "{") (if_statement "if (local_58 != local_48) {\n          FUN_002f1e60(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_002f1e60(local_58);\n        }" ({ "{") (expression_statement "FUN_002f1e60(local_58);" (call_expression "FUN_002f1e60(local_58)" (identifier "FUN_002f1e60") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00170ea5;" (goto "goto") (statement_identifier "LAB_00170ea5") (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_58 != local_48) {\n      FUN_002f1e60(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_002f1e60(local_58);\n    }" ({ "{") (expression_statement "FUN_002f1e60(local_58);" (call_expression "FUN_002f1e60(local_58)" (identifier "FUN_002f1e60") (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_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);" (assignment_expression "local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" (identifier "local_160") (= "=") (call_expression "FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" (identifier "FUN_00179620") (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_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_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_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 "bVar25 = true;" (assignment_expression "bVar25 = true" (identifier "bVar25") (= "=") (true "true")) (; ";")) (} "}")))) (if_statement "if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0018ff20") (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_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    \n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0'))" (( "(") (binary_expression "(*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')" (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2)" (( "(") (binary_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" (* "*") (cast_expression "(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050)" (( "(") (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (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    pcVar3 = *(code **)(*param_2 + 0x10);\n    if (pcVar3 != FUN_00173890) {\n                    \n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    pcVar3 = *(code **)(*param_2 + 0x98);\n    bVar26 = pcVar3 < FUN_00173800;\n    bVar28 = pcVar3 == FUN_00173800;\n    if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }\n    lVar20 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar14 = local_78[0];\n    do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);\n    bVar24 = false;\n    bVar26 = (!bVar26 && !bVar28) == bVar26;\n    if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "pcVar3 = *(code **)(*param_2 + 0x10);" (assignment_expression "pcVar3 = *(code **)(*param_2 + 0x10)" (identifier "pcVar3") (= "=") (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 (pcVar3 != FUN_00173890) {\n                    \n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }" (if "if") (parenthesized_expression "(pcVar3 != FUN_00173890)" (( "(") (binary_expression "pcVar3 != FUN_00173890" (identifier "pcVar3") (!= "!=") (identifier "FUN_00173890")) () ")")) (compound_statement "{\n                    \n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }" ({ "{") (expression_statement "local_135 = (*pcVar3)(param_2,local_78[0]);" (assignment_expression "local_135 = (*pcVar3)(param_2,local_78[0])" (identifier "local_135") (= "=") (call_expression "(*pcVar3)(param_2,local_78[0])" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (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_00170f04;" (goto "goto") (statement_identifier "LAB_00170f04") (; ";")) (} "}"))) (expression_statement "pcVar3 = *(code **)(*param_2 + 0x98);" (assignment_expression "pcVar3 = *(code **)(*param_2 + 0x98)" (identifier "pcVar3") (= "=") (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 "bVar26 = pcVar3 < FUN_00173800;" (assignment_expression "bVar26 = pcVar3 < FUN_00173800" (identifier "bVar26") (= "=") (binary_expression "pcVar3 < FUN_00173800" (identifier "pcVar3") (< "<") (identifier "FUN_00173800"))) (; ";")) (expression_statement "bVar28 = pcVar3 == FUN_00173800;" (assignment_expression "bVar28 = pcVar3 == FUN_00173800" (identifier "bVar28") (= "=") (binary_expression "pcVar3 == FUN_00173800" (identifier "pcVar3") (== "==") (identifier "FUN_00173800"))) (; ";")) (if_statement "if (!bVar28) {\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }" (if "if") (parenthesized_expression "(!bVar28)" (( "(") (unary_expression "!bVar28" (! "!") (identifier "bVar28")) () ")")) (compound_statement "{\n      local_135 = (*pcVar3)(param_2,local_78[0]);\n      goto LAB_00170f04;\n    }" ({ "{") (expression_statement "local_135 = (*pcVar3)(param_2,local_78[0]);" (assignment_expression "local_135 = (*pcVar3)(param_2,local_78[0])" (identifier "local_135") (= "=") (call_expression "(*pcVar3)(param_2,local_78[0])" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (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_00170f04;" (goto "goto") (statement_identifier "LAB_00170f04") (; ";")) (} "}"))) (expression_statement "lVar20 = 0xc;" (assignment_expression "lVar20 = 0xc" (identifier "lVar20") (= "=") (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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" (identifier "pbVar14") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    } while (bVar28);" (do "do") (compound_statement "{\n      if (lVar20 == 0) break;\n      lVar20 = lVar20 + -1;\n      bVar26 = *pbVar17 < *pbVar14;\n      bVar28 = *pbVar17 == *pbVar14;\n      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar20 == 0) break;" (if "if") (parenthesized_expression "(lVar20 == 0)" (( "(") (binary_expression "lVar20 == 0" (identifier "lVar20") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" (identifier "lVar20") (= "=") (binary_expression "lVar20 + -1" (identifier "lVar20") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar26 = *pbVar17 < *pbVar14;" (assignment_expression "bVar26 = *pbVar17 < *pbVar14" (identifier "bVar26") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar28 = *pbVar17 == *pbVar14;" (assignment_expression "bVar28 = *pbVar17 == *pbVar14" (identifier "bVar28") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar28)" (( "(") (identifier "bVar28") () ")")) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = (!bVar26 && !bVar28) == bVar26;" (assignment_expression "bVar26 = (!bVar26 && !bVar28) == bVar26" (identifier "bVar26") (= "=") (binary_expression "(!bVar26 && !bVar28) == bVar26" (parenthesized_expression "(!bVar26 && !bVar28)" (( "(") (binary_expression "!bVar26 && !bVar28" (unary_expression "!bVar26" (! "!") (identifier "bVar26")) (&& "&&") (unary_expression "!bVar28" (! "!") (identifier "bVar28"))) () ")")) (== "==") (identifier "bVar26"))) (; ";")) (if_statement "if (!bVar26) {\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (compound_statement "{\n      lVar20 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar14 = local_78[0];\n      do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);\n      bVar28 = false;\n      bVar26 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "lVar20 = 0x11;" (assignment_expression "lVar20 = 0x11" (identifier "lVar20") (= "=") (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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" (identifier "pbVar14") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      } while (bVar26);" (do "do") (compound_statement "{\n        if (lVar20 == 0) break;\n        lVar20 = lVar20 + -1;\n        bVar24 = *pbVar17 < *pbVar14;\n        bVar26 = *pbVar17 == *pbVar14;\n        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar20 == 0) break;" (if "if") (parenthesized_expression "(lVar20 == 0)" (( "(") (binary_expression "lVar20 == 0" (identifier "lVar20") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" (identifier "lVar20") (= "=") (binary_expression "lVar20 + -1" (identifier "lVar20") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" (identifier "bVar24") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" (identifier "bVar26") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" (identifier "bVar28") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar26 = (!bVar24 && !bVar26) == bVar24" (identifier "bVar26") (= "=") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24"))) (; ";")) (if_statement "if (!bVar26) {\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (compound_statement "{\n        lVar20 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar14 = local_78[0];\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar26 = (!bVar28 && !bVar26) == bVar28;\n        if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }\n      }" ({ "{") (expression_statement "lVar20 = 0xc;" (assignment_expression "lVar20 = 0xc" (identifier "lVar20") (= "=") (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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" (identifier "pbVar14") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);" (do "do") (compound_statement "{\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          bVar28 = *pbVar17 < *pbVar14;\n          bVar26 = *pbVar17 == *pbVar14;\n          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar20 == 0) break;" (if "if") (parenthesized_expression "(lVar20 == 0)" (( "(") (binary_expression "lVar20 == 0" (identifier "lVar20") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" (identifier "lVar20") (= "=") (binary_expression "lVar20 + -1" (identifier "lVar20") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar28 = *pbVar17 < *pbVar14;" (assignment_expression "bVar28 = *pbVar17 < *pbVar14" (identifier "bVar28") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" (identifier "bVar26") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = (!bVar28 && !bVar26) == bVar28;" (assignment_expression "bVar26 = (!bVar28 && !bVar26) == bVar28" (identifier "bVar26") (= "=") (binary_expression "(!bVar28 && !bVar26) == bVar28" (parenthesized_expression "(!bVar28 && !bVar26)" (( "(") (binary_expression "!bVar28 && !bVar26" (unary_expression "!bVar28" (! "!") (identifier "bVar28")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar28"))) (; ";")) (if_statement "if (!bVar26) {\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }" (if "if") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (compound_statement "{\n          lVar20 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar14 = local_78[0];\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);\n          bVar28 = false;\n          bVar26 = (!bVar24 && !bVar26) == bVar24;\n          if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }\n        }" ({ "{") (expression_statement "lVar20 = 0x11;" (assignment_expression "lVar20 = 0x11" (identifier "lVar20") (= "=") (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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" (identifier "pbVar14") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          } while (bVar26);" (do "do") (compound_statement "{\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar24 = *pbVar17 < *pbVar14;\n            bVar26 = *pbVar17 == *pbVar14;\n            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar20 == 0) break;" (if "if") (parenthesized_expression "(lVar20 == 0)" (( "(") (binary_expression "lVar20 == 0" (identifier "lVar20") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" (identifier "lVar20") (= "=") (binary_expression "lVar20 + -1" (identifier "lVar20") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" (identifier "bVar24") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" (identifier "bVar26") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" (identifier "bVar28") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar26 = (!bVar24 && !bVar26) == bVar24" (identifier "bVar26") (= "=") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24"))) (; ";")) (if_statement "if (!bVar26) {\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }" (if "if") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (compound_statement "{\n            lVar20 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar14 = local_78[0];\n            do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);\n            local_135 = (!bVar28 && !bVar26) != bVar28;\n            goto LAB_00170f04;\n          }" ({ "{") (expression_statement "lVar20 = 9;" (assignment_expression "lVar20 = 9" (identifier "lVar20") (= "=") (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 "pbVar14 = local_78[0];" (assignment_expression "pbVar14 = local_78[0]" (identifier "pbVar14") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            } while (bVar26);" (do "do") (compound_statement "{\n              if (lVar20 == 0) break;\n              lVar20 = lVar20 + -1;\n              bVar28 = *pbVar17 < *pbVar14;\n              bVar26 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;\n            }" ({ "{") (if_statement "if (lVar20 == 0) break;" (if "if") (parenthesized_expression "(lVar20 == 0)" (( "(") (binary_expression "lVar20 == 0" (identifier "lVar20") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" (identifier "lVar20") (= "=") (binary_expression "lVar20 + -1" (identifier "lVar20") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar28 = *pbVar17 < *pbVar14;" (assignment_expression "bVar28 = *pbVar17 < *pbVar14" (identifier "bVar28") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar26 = *pbVar17 == *pbVar14;" (assignment_expression "bVar26 = *pbVar17 == *pbVar14" (identifier "bVar26") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar29 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar29 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (expression_statement "local_135 = (!bVar28 && !bVar26) != bVar28;" (assignment_expression "local_135 = (!bVar28 && !bVar26) != bVar28" (identifier "local_135") (= "=") (binary_expression "(!bVar28 && !bVar26) != bVar28" (parenthesized_expression "(!bVar28 && !bVar26)" (( "(") (binary_expression "!bVar28 && !bVar26" (unary_expression "!bVar28" (! "!") (identifier "bVar28")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (!= "!=") (identifier "bVar28"))) (; ";")) (goto_statement "goto LAB_00170f04;" (goto "goto") (statement_identifier "LAB_00170f04") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "local_135 = '\0';" (assignment_expression "local_135 = '\0'" (identifier "local_135") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (labeled_statement "LAB_00170f04:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);\n  }" (statement_identifier "LAB_00170f04") (: ":") (if_statement "if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\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      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);" (do "do") (compound_statement "{\n      uVar6 = param_5[1];\n      uVar4 = uVar6 >> 0x18;\n      uVar7 = param_5[2];\n      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n      if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }\nLAB_00171042:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    }" ({ "{") (expression_statement "uVar6 = param_5[1];" (assignment_expression "uVar6 = param_5[1]" (identifier "uVar6") (= "=") (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = uVar6 >> 0x18;" (assignment_expression "uVar4 = uVar6 >> 0x18" (identifier "uVar4") (= "=") (binary_expression "uVar6 >> 0x18" (identifier "uVar6") (>> ">>") (number_literal "0x18"))) (; ";")) (expression_statement "uVar7 = param_5[2];" (assignment_expression "uVar7 = param_5[2]" (identifier "uVar7") (= "=") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;" (assignment_expression "uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8" (identifier "uVar21") (= "=") (binary_expression "((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8" (parenthesized_expression "((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18)" (( "(") (binary_expression "(uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "(uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8")) (| "|") (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar6 << 0x18" (identifier "uVar6") (<< "<<") (number_literal "0x18"))) () ")")) (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;" (assignment_expression "uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (identifier "uVar6") (= "=") (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" (identifier "uVar7") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" (( "(") (binary_expression "uVar7 & 0xff0000" (identifier "uVar7") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" (( "(") (binary_expression "uVar7 & 0xff00" (identifier "uVar7") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar7 << 0x18" (identifier "uVar7") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (uVar21 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }" (if "if") (parenthesized_expression "(uVar21 < param_7)" (( "(") (binary_expression "uVar21 < param_7" (identifier "uVar21") (< "<") (identifier "param_7")) () ")")) (compound_statement "{\n        if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar20 = (ulong)(uVar21 << 4) + param_8;\n        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;\n        uVar7 = (uint)uVar15;\n        if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }\n        local_118 = param_3;\n        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (param_8 == 0) {\n                    \n          FUN_0018ff20("../../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_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");\n        }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");" (call_expression "FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs")" (identifier "FUN_0018ff20") (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 "lVar20 = (ulong)(uVar21 << 4) + param_8;" (assignment_expression "lVar20 = (ulong)(uVar21 << 4) + param_8" (identifier "lVar20") (= "=") (binary_expression "(ulong)(uVar21 << 4) + param_8" (call_expression "(ulong)(uVar21 << 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar21 << 4)" (( "(") (binary_expression "uVar21 << 4" (identifier "uVar21") (<< "<<") (number_literal "4")) () ")"))) (+ "+") (identifier "param_8"))) (; ";")) (expression_statement "uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;" (assignment_expression "uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8" (identifier "uVar15") (= "=") (binary_expression "*(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8" (binary_expression "*(ushort *)(lVar20 + 0xe) << 8" (pointer_expression "*(ushort *)(lVar20 + 0xe)" (* "*") (cast_expression "(ushort *)(lVar20 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0xe)" (( "(") (binary_expression "lVar20 + 0xe" (identifier "lVar20") (+ "+") (number_literal "0xe")) () ")")))) (<< "<<") (number_literal "8")) (| "|") (binary_expression "*(ushort *)(lVar20 + 0xe) >> 8" (pointer_expression "*(ushort *)(lVar20 + 0xe)" (* "*") (cast_expression "(ushort *)(lVar20 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0xe)" (( "(") (binary_expression "lVar20 + 0xe" (identifier "lVar20") (+ "+") (number_literal "0xe")) () ")")))) (>> ">>") (number_literal "8")))) (; ";")) (expression_statement "uVar7 = (uint)uVar15;" (assignment_expression "uVar7 = (uint)uVar15" (identifier "uVar7") (= "=") (cast_expression "(uint)uVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar15"))) (; ";")) (if_statement "if (uVar15 < 0xff00) {\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }\n        else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }" (if "if") (parenthesized_expression "(uVar15 < 0xff00)" (( "(") (binary_expression "uVar15 < 0xff00" (identifier "uVar15") (< "<") (number_literal "0xff00")) () ")")) (compound_statement "{\nLAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }\n        }" ({ "{") (labeled_statement "LAB_001710c0:\n          uVar21 = *(uint *)(lVar20 + 4);" (statement_identifier "LAB_001710c0") (: ":") (expression_statement "uVar21 = *(uint *)(lVar20 + 4);" (assignment_expression "uVar21 = *(uint *)(lVar20 + 4)" (identifier "uVar21") (= "=") (pointer_expression "*(uint *)(lVar20 + 4)" (* "*") (cast_expression "(uint *)(lVar20 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 4)" (( "(") (binary_expression "lVar20 + 4" (identifier "lVar20") (+ "+") (number_literal "4")) () ")"))))) (; ";"))) (expression_statement "uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;" (assignment_expression "uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18" (identifier "uVar21") (= "=") (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18" (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8" (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8" (binary_expression "uVar21 >> 0x18" (identifier "uVar21") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar21 & 0xff0000) >> 8" (parenthesized_expression "(uVar21 & 0xff0000)" (( "(") (binary_expression "uVar21 & 0xff0000" (identifier "uVar21") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar21 & 0xff00) << 8" (parenthesized_expression "(uVar21 & 0xff00)" (( "(") (binary_expression "uVar21 & 0xff00" (identifier "uVar21") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar21 << 0x18" (identifier "uVar21") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "local_12c = uVar6 + uVar21;" (assignment_expression "local_12c = uVar6 + uVar21" (identifier "local_12c") (= "=") (binary_expression "uVar6 + uVar21" (identifier "uVar6") (+ "+") (identifier "uVar21"))) (; ";")) (if_statement "if (bVar25) {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = param_3;\n            FUN_00177b00(local_160,&local_58);\n            bVar26 = true;\n            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;\nLAB_00170fb2:\n            local_58 = (byte *)0x0;\n            FUN_00177c80(local_158,&local_58);\n            goto LAB_00170fcd;\n          }" ({ "{") (expression_statement "local_50 = CONCAT44(local_50._4_4_,uVar7);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,uVar7)" (identifier "local_50") (= "=") (call_expression "CONCAT44(local_50._4_4_,uVar7)" (identifier "CONCAT44") (argument_list "(local_50._4_4_,uVar7)" (( "(") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" (identifier "local_58") (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_00177b00(local_160,&local_58);" (call_expression "FUN_00177b00(local_160,&local_58)" (identifier "FUN_00177b00") (argument_list "(local_160,&local_58)" (( "(") (identifier "local_160") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (if_statement "if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;" (if "if") (parenthesized_expression "((*(byte *)(lVar20 + 0xc) & 0xf) == 3)" (( "(") (binary_expression "(*(byte *)(lVar20 + 0xc) & 0xf) == 3" (parenthesized_expression "(*(byte *)(lVar20 + 0xc) & 0xf)" (( "(") (binary_expression "*(byte *)(lVar20 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar20 + 0xc)" (* "*") (cast_expression "(byte *)(lVar20 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0xc)" (( "(") (binary_expression "lVar20 + 0xc" (identifier "lVar20") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "3")) () ")")) (goto_statement "goto LAB_00171112;" (goto "goto") (statement_identifier "LAB_00171112") (; ";"))) (labeled_statement "LAB_00170fb2:\n            local_58 = (byte *)0x0;" (statement_identifier "LAB_00170fb2") (: ":") (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_00177c80(local_158,&local_58);" (call_expression "FUN_00177c80(local_158,&local_58)" (identifier "FUN_00177c80") (argument_list "(local_158,&local_58)" (( "(") (identifier "local_158") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (goto_statement "goto LAB_00170fcd;" (goto "goto") (statement_identifier "LAB_00170fcd") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }" (else "else") (compound_statement "{\n          if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }\n          uVar21 = *(uint *)(lVar20 + 4);\n          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;\n          local_12c = uVar6 + uVar21;\n          if (!bVar25) goto LAB_00171042;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_00177b00(local_160,&local_58);\n          bVar26 = false;\n          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;\nLAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_00177c80(local_158,&local_58);\nLAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;\n          local_50 = (ulong)(int)uVar6;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_88);\n          if (!bVar26) goto LAB_00171042;\n        }" ({ "{") (if_statement "if (uVar15 == 0xffff) {\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }" (if "if") (parenthesized_expression "(uVar15 == 0xffff)" (( "(") (binary_expression "uVar15 == 0xffff" (identifier "uVar15") (== "==") (number_literal "0xffff")) () ")")) (compound_statement "{\n            lVar11 = *(long *)(param_3 + 0x40);\n            if (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }\n            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);\n            goto LAB_001710c0;\n          }" ({ "{") (expression_statement "lVar11 = *(long *)(param_3 + 0x40);" (assignment_expression "lVar11 = *(long *)(param_3 + 0x40)" (identifier "lVar11") (= "=") (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 (lVar11 == 0) {\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar11;\n            }" ({ "{") (expression_statement "lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);" (assignment_expression "lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3)" (identifier "lVar11") (= "=") (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) = lVar11;" (assignment_expression "*(long *)(param_3 + 0x40) = lVar11" (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 "lVar11")) (; ";")) (} "}"))) (expression_statement "uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);" (assignment_expression "uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21)" (identifier "uVar7") (= "=") (call_expression "FUN_001d1ac0(lVar11,param_3,uVar21)" (identifier "FUN_001d1ac0") (argument_list "(lVar11,param_3,uVar21)" (( "(") (identifier "lVar11") (, ",") (identifier "param_3") (, ",") (identifier "uVar21") () ")")))) (; ";")) (goto_statement "goto LAB_001710c0;" (goto "goto") (statement_identifier "LAB_001710c0") (; ";")) (} "}"))) (expression_statement "uVar21 = *(uint *)(lVar20 + 4);" (assignment_expression "uVar21 = *(uint *)(lVar20 + 4)" (identifier "uVar21") (= "=") (pointer_expression "*(uint *)(lVar20 + 4)" (* "*") (cast_expression "(uint *)(lVar20 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 4)" (( "(") (binary_expression "lVar20 + 4" (identifier "lVar20") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18;" (assignment_expression "uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18" (identifier "uVar21") (= "=") (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |\n                   uVar21 << 0x18" (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8" (binary_expression "uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8" (binary_expression "uVar21 >> 0x18" (identifier "uVar21") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar21 & 0xff0000) >> 8" (parenthesized_expression "(uVar21 & 0xff0000)" (( "(") (binary_expression "uVar21 & 0xff0000" (identifier "uVar21") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar21 & 0xff00) << 8" (parenthesized_expression "(uVar21 & 0xff00)" (( "(") (binary_expression "uVar21 & 0xff00" (identifier "uVar21") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar21 << 0x18" (identifier "uVar21") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "local_12c = uVar6 + uVar21;" (assignment_expression "local_12c = uVar6 + uVar21" (identifier "local_12c") (= "=") (binary_expression "uVar6 + uVar21" (identifier "uVar6") (+ "+") (identifier "uVar21"))) (; ";")) (if_statement "if (!bVar25) goto LAB_00171042;" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (goto_statement "goto LAB_00171042;" (goto "goto") (statement_identifier "LAB_00171042") (; ";"))) (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_00177b00(local_160,&local_58);" (call_expression "FUN_00177b00(local_160,&local_58)" (identifier "FUN_00177b00") (argument_list "(local_160,&local_58)" (( "(") (identifier "local_160") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" (identifier "bVar26") (= "=") (false "false")) (; ";")) (if_statement "if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;" (if "if") (parenthesized_expression "((*(byte *)(lVar20 + 0xc) & 0xf) != 3)" (( "(") (binary_expression "(*(byte *)(lVar20 + 0xc) & 0xf) != 3" (parenthesized_expression "(*(byte *)(lVar20 + 0xc) & 0xf)" (( "(") (binary_expression "*(byte *)(lVar20 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar20 + 0xc)" (* "*") (cast_expression "(byte *)(lVar20 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0xc)" (( "(") (binary_expression "lVar20 + 0xc" (identifier "lVar20") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_00170fb2;" (goto "goto") (statement_identifier "LAB_00170fb2") (; ";"))) (labeled_statement "LAB_00171112:\n          local_58 = (byte *)0xffffffffffffffff;" (statement_identifier "LAB_00171112") (: ":") (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_00177c80(local_158,&local_58);" (call_expression "FUN_00177c80(local_158,&local_58)" (identifier "FUN_00177c80") (argument_list "(local_158,&local_58)" (( "(") (identifier "local_158") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (labeled_statement "LAB_00170fcd:\n          local_58 = (byte *)(ulong)uVar21;" (statement_identifier "LAB_00170fcd") (: ":") (expression_statement "local_58 = (byte *)(ulong)uVar21;" (assignment_expression "local_58 = (byte *)(ulong)uVar21" (identifier "local_58") (= "=") (cast_expression "(byte *)(ulong)uVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar21" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar21")))) (; ";"))) (expression_statement "local_50 = (ulong)(int)uVar6;" (assignment_expression "local_50 = (ulong)(int)uVar6" (identifier "local_50") (= "=") (cast_expression "(ulong)(int)uVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")))) (; ";")) (expression_statement "FUN_00177e20(local_168,&local_58);" (call_expression "FUN_00177e20(local_168,&local_58)" (identifier "FUN_00177e20") (argument_list "(local_168,&local_58)" (( "(") (identifier "local_168") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "uVar6 = *param_5;" (assignment_expression "uVar6 = *param_5" (identifier "uVar6") (= "=") (pointer_expression "*param_5" (* "*") (identifier "param_5"))) (; ";")) (expression_statement "local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);" (assignment_expression "local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" (identifier "local_58") (= "=") (cast_expression "(byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" (( "(") (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" (identifier "uVar6") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar6 << 0x18" (identifier "uVar6") (<< "<<") (number_literal "0x18"))) () ")"))))) (; ";")) (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_00177450(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_00177450(local_148,puVar1,&local_58);\n          }" ({ "{") (expression_statement "FUN_00177450(local_148,puVar1,&local_58);" (call_expression "FUN_00177450(local_148,puVar1,&local_58)" (identifier "FUN_00177450") (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_00177fb0(local_170,&local_88);" (call_expression "FUN_00177fb0(local_170,&local_88)" (identifier "FUN_00177fb0") (argument_list "(local_170,&local_88)" (( "(") (identifier "local_170") (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) () ")"))) (; ";")) (if_statement "if (!bVar26) goto LAB_00171042;" (if "if") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (goto_statement "goto LAB_00171042;" (goto "goto") (statement_identifier "LAB_00171042") (; ";"))) (} "}")))) (expression_statement "local_118 = param_3;" (assignment_expression "local_118 = param_3" (identifier "local_118") (= "=") (identifier "param_3")) (; ";")) (if_statement "if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }\n        else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1))" (( "(") (binary_expression "(local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)" (parenthesized_expression "(local_135 == '\0')" (( "(") (binary_expression "local_135 == '\0'" (identifier "local_135") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(lVar20 + 0xc) & 0xf) == 1)" (( "(") (binary_expression "(*(byte *)(lVar20 + 0xc) & 0xf) == 1" (parenthesized_expression "(*(byte *)(lVar20 + 0xc) & 0xf)" (( "(") (binary_expression "*(byte *)(lVar20 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar20 + 0xc)" (* "*") (cast_expression "(byte *)(lVar20 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0xc)" (( "(") (binary_expression "lVar20 + 0xc" (identifier "lVar20") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\nLAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;\n        }" ({ "{") (labeled_statement "LAB_001711d0:\n          if (param_4 != uVar7) goto LAB_001711e3;" (statement_identifier "LAB_001711d0") (: ":") (if_statement "if (param_4 != uVar7) goto LAB_001711e3;" (if "if") (parenthesized_expression "(param_4 != uVar7)" (( "(") (binary_expression "param_4 != uVar7" (identifier "param_4") (!= "!=") (identifier "uVar7")) () ")")) (goto_statement "goto LAB_001711e3;" (goto "goto") (statement_identifier "LAB_001711e3") (; ";")))) (} "}")) (else_clause "else {\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" (else "else") (compound_statement "{\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }\n          if (param_4 == uVar7) goto LAB_00171042;\nLAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0018ff20") (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 *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }" (if "if") (parenthesized_expression "((*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0))))" (( "(") (binary_expression "(*(char *)(lVar11 + 0x2a61) != '\0') ||\n             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))" (parenthesized_expression "(*(char *)(lVar11 + 0x2a61) != '\0')" (( "(") (binary_expression "*(char *)(lVar11 + 0x2a61) != '\0'" (pointer_expression "*(char *)(lVar11 + 0x2a61)" (* "*") (cast_expression "(char *)(lVar11 + 0x2a61)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x2a61)" (( "(") (binary_expression "lVar11 + 0x2a61" (identifier "lVar11") (+ "+") (number_literal "0x2a61")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))" (( "(") (parenthesized_expression "(uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0))" (( "(") (binary_expression "uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)" (binary_expression "uVar4 < 0x3b" (identifier "uVar4") (< "<") (number_literal "0x3b")) (&& "&&") (parenthesized_expression "((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)" (( "(") (binary_expression "(0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0" (parenthesized_expression "(0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1)" (( "(") (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1" (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f)" (number_literal "0x40000001d48a0d0U") (>> ">>") (parenthesized_expression "((ulong)uVar4 & 0x3f)" (( "(") (binary_expression "(ulong)uVar4 & 0x3f" (cast_expression "(ulong)uVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar4")) (& "&") (number_literal "0x3f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);\n            goto LAB_001711d0;\n          }" ({ "{") (expression_statement "local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8);" (assignment_expression "local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8)" (identifier "local_a0") (= "=") (call_expression "(uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(ushort)" (( "(") (identifier "ushort") () ")"))) (argument_list "(*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8)" (( "(") (binary_expression "*(ushort *)(lVar20 + 0xe) << 8 |\n                                     *(ushort *)(lVar20 + 0xe) >> 8" (binary_expression "*(ushort *)(lVar20 + 0xe) << 8" (pointer_expression "*(ushort *)(lVar20 + 0xe)" (* "*") (cast_expression "(ushort *)(lVar20 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0xe)" (( "(") (binary_expression "lVar20 + 0xe" (identifier "lVar20") (+ "+") (number_literal "0xe")) () ")")))) (<< "<<") (number_literal "8")) (| "|") (binary_expression "*(ushort *)(lVar20 + 0xe) >> 8" (pointer_expression "*(ushort *)(lVar20 + 0xe)" (* "*") (cast_expression "(ushort *)(lVar20 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0xe)" (( "(") (binary_expression "lVar20 + 0xe" (identifier "lVar20") (+ "+") (number_literal "0xe")) () ")")))) (>> ">>") (number_literal "8"))) () ")")))) (; ";")) (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_00174bc0(local_e8,&local_a8,&local_e8,1);" (call_expression "FUN_00174bc0(local_e8,&local_a8,&local_e8,1)" (identifier "FUN_00174bc0") (argument_list "(local_e8,&local_a8,&local_e8,1)" (( "(") (identifier "local_e8") (, ",") (pointer_expression "&local_a8" (& "&") (identifier "local_a8")) (, ",") (pointer_expression "&local_e8" (& "&") (identifier "local_e8")) (, ",") (number_literal "1") () ")"))) (; ";")) (goto_statement "goto LAB_001711d0;" (goto "goto") (statement_identifier "LAB_001711d0") (; ";")) (} "}"))) (if_statement "if (param_4 == uVar7) goto LAB_00171042;" (if "if") (parenthesized_expression "(param_4 == uVar7)" (( "(") (binary_expression "param_4 == uVar7" (identifier "param_4") (== "==") (identifier "uVar7")) () ")")) (goto_statement "goto LAB_00171042;" (goto "goto") (statement_identifier "LAB_00171042") (; ";"))) (labeled_statement "LAB_001711f7:\n          if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" (statement_identifier "LAB_001711f7") (: ":") (if_statement "if (*(char *)(lVar11 + 0x2809) != '\0') {\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(*(char *)(lVar11 + 0x2809) != '\0')" (( "(") (binary_expression "*(char *)(lVar11 + 0x2809) != '\0'" (pointer_expression "*(char *)(lVar11 + 0x2809)" (* "*") (cast_expression "(char *)(lVar11 + 0x2809)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x2809)" (( "(") (binary_expression "lVar11 + 0x2809" (identifier "lVar11") (+ "+") (number_literal "0x2809")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            lVar11 = *(long *)(param_1 + 0x290);\n            lVar20 = lVar11 + 0x28;\n            local_88 = local_118;\n            lVar12 = lVar20;\n            lVar10 = *(long *)(lVar11 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar7;\n            if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }\n            local_d0 = lVar8 + 0x30;\n            FUN_00174c60(local_d0,&local_88,&local_d0,1);\n            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);\n            if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "lVar11 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x290)" (identifier "lVar11") (= "=") (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 "lVar20 = lVar11 + 0x28;" (assignment_expression "lVar20 = lVar11 + 0x28" (identifier "lVar20") (= "=") (binary_expression "lVar11 + 0x28" (identifier "lVar11") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "local_88 = local_118;" (assignment_expression "local_88 = local_118" (identifier "local_88") (= "=") (identifier "local_118")) (; ";")) (expression_statement "lVar12 = lVar20;" (assignment_expression "lVar12 = lVar20" (identifier "lVar12") (= "=") (identifier "lVar20")) (; ";")) (expression_statement "lVar10 = *(long *)(lVar11 + 0x30);" (assignment_expression "lVar10 = *(long *)(lVar11 + 0x30)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(lVar11 + 0x30)" (* "*") (cast_expression "(long *)(lVar11 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x30)" (( "(") (binary_expression "lVar11 + 0x30" (identifier "lVar11") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_98 = param_3;" (assignment_expression "local_98 = param_3" (identifier "local_98") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_90 = param_4;" (assignment_expression "local_90 = param_4" (identifier "local_90") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_80 = uVar7;" (assignment_expression "local_80 = uVar7" (identifier "local_80") (= "=") (identifier "uVar7")) (; ";")) (if_statement "if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }" (if "if") (parenthesized_expression "(*(long *)(lVar11 + 0x30) == 0)" (( "(") (binary_expression "*(long *)(lVar11 + 0x30) == 0" (pointer_expression "*(long *)(lVar11 + 0x30)" (* "*") (cast_expression "(long *)(lVar11 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x30)" (( "(") (binary_expression "lVar11 + 0x30" (identifier "lVar11") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00171288:\n              local_c8 = &local_98;\n              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);\n            }" ({ "{") (labeled_statement "LAB_00171288:\n              local_c8 = &local_98;" (statement_identifier "LAB_00171288") (: ":") (expression_statement "local_c8 = &local_98;" (assignment_expression "local_c8 = &local_98" (identifier "local_c8") (= "=") (pointer_expression "&local_98" (& "&") (identifier "local_98"))) (; ";"))) (expression_statement "lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);" (assignment_expression "lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea)" (identifier "lVar8") (= "=") (call_expression "FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea)" (identifier "FUN_00174880") (argument_list "(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea)" (( "(") (binary_expression "lVar11 + 0x20" (identifier "lVar11") (+ "+") (number_literal "0x20")) (, ",") (identifier "lVar20") (, ",") (pointer_expression "&DAT_0038b644" (& "&") (identifier "DAT_0038b644")) (, ",") (pointer_expression "&local_c8" (& "&") (identifier "local_c8")) (, ",") (pointer_expression "&local_ea" (& "&") (identifier "local_ea")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }" (else "else") (compound_statement "{\n              do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);\nLAB_0017126a:\n              bVar26 = lVar8 == lVar20;\n              lVar20 = lVar8;\n              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;\n            }" ({ "{") (do_statement "do {\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              } while (*(long *)(lVar8 + 0x10) != 0);" (do "do") (compound_statement "{\n                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }\n                lVar12 = lVar8;\n                lVar10 = *(long *)(lVar8 + 0x10);\n              }" ({ "{") (while_statement "while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))) {\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }" (while "while") (parenthesized_expression "((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       )))" (( "(") (parenthesized_expression "(lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       ))" (( "(") (comma_expression "lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       )" (assignment_expression "lVar8 = lVar10" (identifier "lVar8") (= "=") (identifier "lVar10")) (, ",") (binary_expression "*(byte **)(lVar8 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       )" (binary_expression "*(byte **)(lVar8 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar8 + 0x20)" (* "*") (cast_expression "(byte **)(lVar8 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar8 + 0x20)" (( "(") (binary_expression "lVar8 + 0x20" (identifier "lVar8") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (identifier "param_3")) (|| "||") (parenthesized_expression "((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))\n                       )" (( "(") (parenthesized_expression "(param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))" (( "(") (binary_expression "param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar8 + 0x20)" (identifier "param_3") (== "==") (pointer_expression "*(byte **)(lVar8 + 0x20)" (* "*") (cast_expression "(byte **)(lVar8 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar8 + 0x20)" (( "(") (binary_expression "lVar8 + 0x20" (identifier "lVar8") (+ "+") (number_literal "0x20")) () ")"))))) (&& "&&") (parenthesized_expression "(*(uint *)(lVar8 + 0x28) < param_4)" (( "(") (binary_expression "*(uint *)(lVar8 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar8 + 0x28)" (* "*") (cast_expression "(uint *)(lVar8 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x28)" (( "(") (binary_expression "lVar8 + 0x28" (identifier "lVar8") (+ "+") (number_literal "0x28")) () ")")))) (< "<") (identifier "param_4")) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                  plVar2 = (long *)(lVar8 + 0x18);\n                  lVar8 = lVar12;\n                  lVar10 = *plVar2;\n                  if (*plVar2 == 0) goto LAB_0017126a;\n                }" ({ "{") (expression_statement "plVar2 = (long *)(lVar8 + 0x18);" (assignment_expression "plVar2 = (long *)(lVar8 + 0x18)" (identifier "plVar2") (= "=") (cast_expression "(long *)(lVar8 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x18)" (( "(") (binary_expression "lVar8 + 0x18" (identifier "lVar8") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "lVar8 = lVar12;" (assignment_expression "lVar8 = lVar12" (identifier "lVar8") (= "=") (identifier "lVar12")) (; ";")) (expression_statement "lVar10 = *plVar2;" (assignment_expression "lVar10 = *plVar2" (identifier "lVar10") (= "=") (pointer_expression "*plVar2" (* "*") (identifier "plVar2"))) (; ";")) (if_statement "if (*plVar2 == 0) goto LAB_0017126a;" (if "if") (parenthesized_expression "(*plVar2 == 0)" (( "(") (binary_expression "*plVar2 == 0" (pointer_expression "*plVar2" (* "*") (identifier "plVar2")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017126a;" (goto "goto") (statement_identifier "LAB_0017126a") (; ";"))) (} "}"))) (expression_statement "lVar12 = lVar8;" (assignment_expression "lVar12 = lVar8" (identifier "lVar12") (= "=") (identifier "lVar8")) (; ";")) (expression_statement "lVar10 = *(long *)(lVar8 + 0x10);" (assignment_expression "lVar10 = *(long *)(lVar8 + 0x10)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(lVar8 + 0x10)" (* "*") (cast_expression "(long *)(lVar8 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x10)" (( "(") (binary_expression "lVar8 + 0x10" (identifier "lVar8") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(long *)(lVar8 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(lVar8 + 0x10) != 0" (pointer_expression "*(long *)(lVar8 + 0x10)" (* "*") (cast_expression "(long *)(lVar8 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x10)" (( "(") (binary_expression "lVar8 + 0x10" (identifier "lVar8") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_0017126a:\n              bVar26 = lVar8 == lVar20;" (statement_identifier "LAB_0017126a") (: ":") (expression_statement "bVar26 = lVar8 == lVar20;" (assignment_expression "bVar26 = lVar8 == lVar20" (identifier "bVar26") (= "=") (binary_expression "lVar8 == lVar20" (identifier "lVar8") (== "==") (identifier "lVar20"))) (; ";"))) (expression_statement "lVar20 = lVar8;" (assignment_expression "lVar20 = lVar8" (identifier "lVar20") (= "=") (identifier "lVar8")) (; ";")) (if_statement "if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))\n              goto LAB_00171288;" (if "if") (parenthesized_expression "(((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))" (( "(") (binary_expression "((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28))))" (parenthesized_expression "((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20)))" (( "(") (binary_expression "(bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))" (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (|| "||") (parenthesized_expression "(param_3 < *(byte **)(lVar8 + 0x20))" (( "(") (binary_expression "param_3 < *(byte **)(lVar8 + 0x20)" (identifier "param_3") (< "<") (pointer_expression "*(byte **)(lVar8 + 0x20)" (* "*") (cast_expression "(byte **)(lVar8 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar8 + 0x20)" (( "(") (binary_expression "lVar8 + 0x20" (identifier "lVar8") (+ "+") (number_literal "0x20")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28))))" (( "(") (parenthesized_expression "(param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))" (( "(") (binary_expression "param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar8 + 0x20)" (identifier "param_3") (== "==") (pointer_expression "*(byte **)(lVar8 + 0x20)" (* "*") (cast_expression "(byte **)(lVar8 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar8 + 0x20)" (( "(") (binary_expression "lVar8 + 0x20" (identifier "lVar8") (+ "+") (number_literal "0x20")) () ")"))))) (&& "&&") (parenthesized_expression "(param_4 < *(uint *)(lVar8 + 0x28))" (( "(") (binary_expression "param_4 < *(uint *)(lVar8 + 0x28)" (identifier "param_4") (< "<") (pointer_expression "*(uint *)(lVar8 + 0x28)" (* "*") (cast_expression "(uint *)(lVar8 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x28)" (( "(") (binary_expression "lVar8 + 0x28" (identifier "lVar8") (+ "+") (number_literal "0x28")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00171288;" (goto "goto") (statement_identifier "LAB_00171288") (; ";"))) (} "}")))) (expression_statement "local_d0 = lVar8 + 0x30;" (assignment_expression "local_d0 = lVar8 + 0x30" (identifier "local_d0") (= "=") (binary_expression "lVar8 + 0x30" (identifier "lVar8") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "FUN_00174c60(local_d0,&local_88,&local_d0,1);" (call_expression "FUN_00174c60(local_d0,&local_88,&local_d0,1)" (identifier "FUN_00174c60") (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 "plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);" (assignment_expression "plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18)" (identifier "plVar2") (= "=") (pointer_expression "*(long **)(PTR_DAT_0045c708 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_0045c708 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x18)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x18" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (plVar2 == (long *)0x0) {\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }" (if "if") (parenthesized_expression "(plVar2 == (long *)0x0)" (( "(") (binary_expression "plVar2 == (long *)0x0" (identifier "plVar2") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");\n            }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target")" (identifier "FUN_0018ff20") (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 **)(*plVar2 + 0x208) != FUN_00172d60) {\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }" (if "if") (parenthesized_expression "(*(code **)(*plVar2 + 0x208) != FUN_00172d60)" (( "(") (binary_expression "*(code **)(*plVar2 + 0x208) != FUN_00172d60" (pointer_expression "*(code **)(*plVar2 + 0x208)" (* "*") (cast_expression "(code **)(*plVar2 + 0x208)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar2 + 0x208)" (( "(") (binary_expression "*plVar2 + 0x208" (pointer_expression "*plVar2" (* "*") (identifier "plVar2")) (+ "+") (number_literal "0x208")) () ")")))) (!= "!=") (identifier "FUN_00172d60")) () ")")) (compound_statement "{\n              (**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);\n            }" ({ "{") (expression_statement "(**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);" (call_expression "(**(code **)(*plVar2 + 0x208))\n                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c)" (parenthesized_expression "(**(code **)(*plVar2 + 0x208))" (( "(") (pointer_expression "**(code **)(*plVar2 + 0x208)" (* "*") (pointer_expression "*(code **)(*plVar2 + 0x208)" (* "*") (cast_expression "(code **)(*plVar2 + 0x208)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar2 + 0x208)" (( "(") (binary_expression "*plVar2 + 0x208" (pointer_expression "*plVar2" (* "*") (identifier "plVar2")) (+ "+") (number_literal "0x208")) () ")"))))) () ")")) (argument_list "(plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c)" (( "(") (identifier "plVar2") (, ",") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "local_118") (, ",") (identifier "uVar7") (, ",") (identifier "local_12c") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_140 != (byte *)0x0) {\n              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 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              lVar20 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar9 = strlen((char *)local_140);\n              FUN_00174550(&local_58,local_140,local_140 + sVar9);\n              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_002f1e60();\n              }\n              lVar11 = *(long *)(param_1 + 0x290);\n              if (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }" ({ "{") (expression_statement "lVar20 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar20 = *(long *)(param_1 + 0x290)" (identifier "lVar20") (= "=") (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 "sVar9 = strlen((char *)local_140);" (assignment_expression "sVar9 = strlen((char *)local_140)" (identifier "sVar9") (= "=") (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_00174550(&local_58,local_140,local_140 + sVar9);" (call_expression "FUN_00174550(&local_58,local_140,local_140 + sVar9)" (identifier "FUN_00174550") (argument_list "(&local_58,local_140,local_140 + sVar9)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "local_140") (, ",") (binary_expression "local_140 + sVar9" (identifier "local_140") (+ "+") (identifier "sVar9")) () ")"))) (; ";")) (expression_statement "lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);" (assignment_expression "lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58)" (identifier "lVar20") (= "=") (call_expression "FUN_001775a0(lVar20 + 0x88,&local_58)" (identifier "FUN_001775a0") (argument_list "(lVar20 + 0x88,&local_58)" (( "(") (binary_expression "lVar20 + 0x88" (identifier "lVar20") (+ "+") (number_literal "0x88")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")")))) (; ";")) (if_statement "if (local_58 != local_48) {\n                FUN_002f1e60();\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_002f1e60();\n              }" ({ "{") (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" (identifier "FUN_002f1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar11 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x290)" (identifier "lVar11") (= "=") (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 (lVar20 != lVar11 + 0x90) {\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }" (if "if") (parenthesized_expression "(lVar20 != lVar11 + 0x90)" (( "(") (binary_expression "lVar20 != lVar11 + 0x90" (identifier "lVar20") (!= "!=") (binary_expression "lVar11 + 0x90" (identifier "lVar11") (+ "+") (number_literal "0x90"))) () ")")) (compound_statement "{\n                lVar12 = lVar11 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar10 = lVar12;\n                lVar8 = *(long *)(lVar11 + 0x30);\n                if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }" ({ "{") (expression_statement "lVar12 = lVar11 + 0x28;" (assignment_expression "lVar12 = lVar11 + 0x28" (identifier "lVar12") (= "=") (binary_expression "lVar11 + 0x28" (identifier "lVar11") (+ "+") (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 "lVar10 = lVar12;" (assignment_expression "lVar10 = lVar12" (identifier "lVar10") (= "=") (identifier "lVar12")) (; ";")) (expression_statement "lVar8 = *(long *)(lVar11 + 0x30);" (assignment_expression "lVar8 = *(long *)(lVar11 + 0x30)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar11 + 0x30)" (* "*") (cast_expression "(long *)(lVar11 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x30)" (( "(") (binary_expression "lVar11 + 0x30" (identifier "lVar11") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (*(long *)(lVar11 + 0x30) == 0) {\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }" (if "if") (parenthesized_expression "(*(long *)(lVar11 + 0x30) == 0)" (( "(") (binary_expression "*(long *)(lVar11 + 0x30) == 0" (pointer_expression "*(long *)(lVar11 + 0x30)" (* "*") (cast_expression "(long *)(lVar11 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x30)" (( "(") (binary_expression "lVar11 + 0x30" (identifier "lVar11") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001717c0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);\n                }" ({ "{") (labeled_statement "LAB_001717c0:\n                  local_c0 = &local_58;" (statement_identifier "LAB_001717c0") (: ":") (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 "lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);" (assignment_expression "lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9)" (identifier "lVar13") (= "=") (call_expression "FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9)" (identifier "FUN_00174880") (argument_list "(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9)" (( "(") (binary_expression "lVar11 + 0x20" (identifier "lVar11") (+ "+") (number_literal "0x20")) (, ",") (identifier "lVar12") (, ",") (pointer_expression "&DAT_0038b644" (& "&") (identifier "DAT_0038b644")) (, ",") (pointer_expression "&local_c0" (& "&") (identifier "local_c0")) (, ",") (pointer_expression "&local_e9" (& "&") (identifier "local_e9")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }" (else "else") (compound_statement "{\n                  do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);\nLAB_001713d2:\n                  bVar26 = lVar12 == lVar13;\n                  lVar12 = lVar13;\n                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;\n                }" ({ "{") (do_statement "do {\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  } while (*(long *)(lVar13 + 0x10) != 0);" (do "do") (compound_statement "{\n                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }\n                    lVar10 = lVar13;\n                    lVar8 = *(long *)(lVar13 + 0x10);\n                  }" ({ "{") (while_statement "while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))) {\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }" (while "while") (parenthesized_expression "((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)))))" (( "(") (parenthesized_expression "(lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))))" (( "(") (comma_expression "lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)))" (assignment_expression "lVar13 = lVar8" (identifier "lVar13") (= "=") (identifier "lVar8")) (, ",") (binary_expression "*(byte **)(lVar13 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)))" (binary_expression "*(byte **)(lVar13 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar13 + 0x20)" (* "*") (cast_expression "(byte **)(lVar13 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar13 + 0x20)" (( "(") (binary_expression "lVar13 + 0x20" (identifier "lVar13") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (identifier "param_3")) (|| "||") (parenthesized_expression "((param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)))" (( "(") (parenthesized_expression "(param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4))" (( "(") (binary_expression "param_3 == *(byte **)(lVar13 + 0x20) &&\n                            (*(uint *)(lVar13 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar13 + 0x20)" (identifier "param_3") (== "==") (pointer_expression "*(byte **)(lVar13 + 0x20)" (* "*") (cast_expression "(byte **)(lVar13 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar13 + 0x20)" (( "(") (binary_expression "lVar13 + 0x20" (identifier "lVar13") (+ "+") (number_literal "0x20")) () ")"))))) (&& "&&") (parenthesized_expression "(*(uint *)(lVar13 + 0x28) < param_4)" (( "(") (binary_expression "*(uint *)(lVar13 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar13 + 0x28)" (* "*") (cast_expression "(uint *)(lVar13 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x28)" (( "(") (binary_expression "lVar13 + 0x28" (identifier "lVar13") (+ "+") (number_literal "0x28")) () ")")))) (< "<") (identifier "param_4")) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                      plVar2 = (long *)(lVar13 + 0x18);\n                      lVar13 = lVar10;\n                      lVar8 = *plVar2;\n                      if (*plVar2 == 0) goto LAB_001713d2;\n                    }" ({ "{") (expression_statement "plVar2 = (long *)(lVar13 + 0x18);" (assignment_expression "plVar2 = (long *)(lVar13 + 0x18)" (identifier "plVar2") (= "=") (cast_expression "(long *)(lVar13 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x18)" (( "(") (binary_expression "lVar13 + 0x18" (identifier "lVar13") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "lVar13 = lVar10;" (assignment_expression "lVar13 = lVar10" (identifier "lVar13") (= "=") (identifier "lVar10")) (; ";")) (expression_statement "lVar8 = *plVar2;" (assignment_expression "lVar8 = *plVar2" (identifier "lVar8") (= "=") (pointer_expression "*plVar2" (* "*") (identifier "plVar2"))) (; ";")) (if_statement "if (*plVar2 == 0) goto LAB_001713d2;" (if "if") (parenthesized_expression "(*plVar2 == 0)" (( "(") (binary_expression "*plVar2 == 0" (pointer_expression "*plVar2" (* "*") (identifier "plVar2")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001713d2;" (goto "goto") (statement_identifier "LAB_001713d2") (; ";"))) (} "}"))) (expression_statement "lVar10 = lVar13;" (assignment_expression "lVar10 = lVar13" (identifier "lVar10") (= "=") (identifier "lVar13")) (; ";")) (expression_statement "lVar8 = *(long *)(lVar13 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar13 + 0x10)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar13 + 0x10)" (* "*") (cast_expression "(long *)(lVar13 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x10)" (( "(") (binary_expression "lVar13 + 0x10" (identifier "lVar13") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(long *)(lVar13 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(lVar13 + 0x10) != 0" (pointer_expression "*(long *)(lVar13 + 0x10)" (* "*") (cast_expression "(long *)(lVar13 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x10)" (( "(") (binary_expression "lVar13 + 0x10" (identifier "lVar13") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_001713d2:\n                  bVar26 = lVar12 == lVar13;" (statement_identifier "LAB_001713d2") (: ":") (expression_statement "bVar26 = lVar12 == lVar13;" (assignment_expression "bVar26 = lVar12 == lVar13" (identifier "bVar26") (= "=") (binary_expression "lVar12 == lVar13" (identifier "lVar12") (== "==") (identifier "lVar13"))) (; ";"))) (expression_statement "lVar12 = lVar13;" (assignment_expression "lVar12 = lVar13" (identifier "lVar12") (= "=") (identifier "lVar13")) (; ";")) (if_statement "if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;" (if "if") (parenthesized_expression "(((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28)))))" (( "(") (binary_expression "((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))" (parenthesized_expression "((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20)))" (( "(") (binary_expression "(bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))" (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (|| "||") (parenthesized_expression "(param_3 < *(byte **)(lVar13 + 0x20))" (( "(") (binary_expression "param_3 < *(byte **)(lVar13 + 0x20)" (identifier "param_3") (< "<") (pointer_expression "*(byte **)(lVar13 + 0x20)" (* "*") (cast_expression "(byte **)(lVar13 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar13 + 0x20)" (( "(") (binary_expression "lVar13 + 0x20" (identifier "lVar13") (+ "+") (number_literal "0x20")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))))" (( "(") (parenthesized_expression "(local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28)))" (( "(") (comma_expression "local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))" (assignment_expression "local_58 = param_3" (identifier "local_58") (= "=") (identifier "param_3")) (, ",") (binary_expression "param_3 == *(byte **)(lVar13 + 0x20) &&\n                      (param_4 < *(uint *)(lVar13 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar13 + 0x20)" (identifier "param_3") (== "==") (pointer_expression "*(byte **)(lVar13 + 0x20)" (* "*") (cast_expression "(byte **)(lVar13 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar13 + 0x20)" (( "(") (binary_expression "lVar13 + 0x20" (identifier "lVar13") (+ "+") (number_literal "0x20")) () ")"))))) (&& "&&") (parenthesized_expression "(param_4 < *(uint *)(lVar13 + 0x28))" (( "(") (binary_expression "param_4 < *(uint *)(lVar13 + 0x28)" (identifier "param_4") (< "<") (pointer_expression "*(uint *)(lVar13 + 0x28)" (* "*") (cast_expression "(uint *)(lVar13 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x28)" (( "(") (binary_expression "lVar13 + 0x28" (identifier "lVar13") (+ "+") (number_literal "0x28")) () ")"))))) () ")")))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_001717c0;" (goto "goto") (statement_identifier "LAB_001717c0") (; ";"))) (} "}")))) (for_statement "for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }" (for "for") (( "(") (assignment_expression "puVar1 = *(undefined8 **)(lVar20 + 0x50)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined8 **)(lVar20 + 0x50)" (* "*") (cast_expression "(undefined8 **)(lVar20 + 0x50)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar20 + 0x50)" (( "(") (binary_expression "lVar20 + 0x50" (identifier "lVar20") (+ "+") (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 = lVar13 + 0x30;\n                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);\n                }" ({ "{") (expression_statement "local_d8 = lVar13 + 0x30;" (assignment_expression "local_d8 = lVar13 + 0x30" (identifier "local_d8") (= "=") (binary_expression "lVar13 + 0x30" (identifier "lVar13") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);" (call_expression "FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1)" (identifier "FUN_00174c60") (argument_list "(lVar13 + 0x30,puVar1 + 1,&local_d8,1)" (( "(") (binary_expression "lVar13 + 0x30" (identifier "lVar13") (+ "+") (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 (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }" (else "else") (compound_statement "{\n        if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_001716a8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }\nLAB_001714f0:\n        pbVar14 = *(byte **)local_88;\n        lVar20 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar14;\n        do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);\n        bVar26 = false;\n        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;\n        if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }\n        local_140 = pbVar14;\n        if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }\n        if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }\n      }" ({ "{") (if_statement "if (uVar21 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" (if "if") (parenthesized_expression "(uVar21 < *(uint *)(param_3 + 0x120))" (( "(") (binary_expression "uVar21 < *(uint *)(param_3 + 0x120)" (identifier "uVar21") (< "<") (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_001716a8:\n                    \n          FUN_0018ff20("../../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_001716a8:\n                    \n          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");" (statement_identifier "LAB_001716a8") (: ":") (expression_statement "FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");" (call_expression "FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs")" (identifier "FUN_0018ff20") (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 "uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));" (assignment_expression "uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120))" (identifier "uVar22") (= "=") (call_expression "(ulong)(uVar21 - *(uint *)(param_3 + 0x120))" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar21 - *(uint *)(param_3 + 0x120))" (( "(") (binary_expression "uVar21 - *(uint *)(param_3 + 0x120)" (identifier "uVar21") (- "-") (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) <= uVar22) {\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }" (if "if") (parenthesized_expression "((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22)" (( "(") (binary_expression "(ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22" (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 "uVar22")) () ")")) (compound_statement "{\n                    \n          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");\n        }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");" (call_expression "FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol")" (identifier "FUN_0018ff20") (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) + uVar22 * 8);" (assignment_expression "local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8)" (identifier "local_88") (= "=") (pointer_expression "*(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8)" (* "*") (cast_expression "(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_3 + 0x130) + uVar22 * 8)" (( "(") (binary_expression "*(long *)(param_3 + 0x130) + uVar22 * 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 "uVar22 * 8" (identifier "uVar22") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (local_88 == (byte *)0x0) goto LAB_001716a8;" (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_001716a8;" (goto "goto") (statement_identifier "LAB_001716a8") (; ";"))) (if_statement "if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00284df0(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_00284df0(param_1,local_88);\n        }" ({ "{") (expression_statement "local_88 = (byte *)FUN_00284df0(param_1,local_88);" (assignment_expression "local_88 = (byte *)FUN_00284df0(param_1,local_88)" (identifier "local_88") (= "=") (cast_expression "(byte *)FUN_00284df0(param_1,local_88)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00284df0(param_1,local_88)" (identifier "FUN_00284df0") (argument_list "(param_1,local_88)" (( "(") (identifier "param_1") (, ",") (identifier "local_88") () ")"))))) (; ";")) (} "}"))) (if_statement "if ((local_88[0x3a] & 7) == 0) {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }\n        else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\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 *)(ulong)*(uint *)(local_88 + 0x40);\n          local_118 = *(byte **)(local_88 + 0x10);\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }\n        }" ({ "{") (expression_statement "pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);" (assignment_expression "pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40)" (identifier "pbVar17") (= "=") (binary_expression "(byte *)(ulong)*(uint *)(local_88 + 0x40)" (cast_expression "(byte *)(ulong)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")"))) (* "*") (cast_expression "(uint *)(local_88 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 0x40)" (( "(") (binary_expression "local_88 + 0x40" (identifier "local_88") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "local_118 = *(byte **)(local_88 + 0x10);" (assignment_expression "local_118 = *(byte **)(local_88 + 0x10)" (identifier "local_118") (= "=") (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_12c = uVar6 + *(uint *)(local_88 + 0x40);" (assignment_expression "local_12c = uVar6 + *(uint *)(local_88 + 0x40)" (identifier "local_12c") (= "=") (binary_expression "uVar6 + *(uint *)(local_88 + 0x40)" (identifier "uVar6") (+ "+") (pointer_expression "*(uint *)(local_88 + 0x40)" (* "*") (cast_expression "(uint *)(local_88 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 0x40)" (( "(") (binary_expression "local_88 + 0x40" (identifier "local_88") (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (if_statement "if ((local_118[0x3c] & 1) == 0) {\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }\n          else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }" (if "if") (parenthesized_expression "((local_118[0x3c] & 1) == 0)" (( "(") (binary_expression "(local_118[0x3c] & 1) == 0" (parenthesized_expression "(local_118[0x3c] & 1)" (( "(") (binary_expression "local_118[0x3c] & 1" (subscript_expression "local_118[0x3c]" (identifier "local_118") ([ "[") (number_literal "0x3c") (] "]")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar7 = *(uint *)(local_88 + 0x18);\n            bVar19 = local_88[0x3b] >> 5 & 1;\n            uVar23 = (local_88[0x38] & 0xf) < 2;\n            uVar27 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n          }" ({ "{") (expression_statement "uVar7 = *(uint *)(local_88 + 0x18);" (assignment_expression "uVar7 = *(uint *)(local_88 + 0x18)" (identifier "uVar7") (= "=") (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 "bVar19 = local_88[0x3b] >> 5 & 1;" (assignment_expression "bVar19 = local_88[0x3b] >> 5 & 1" (identifier "bVar19") (= "=") (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 "uVar23 = (local_88[0x38] & 0xf) < 2;" (assignment_expression "uVar23 = (local_88[0x38] & 0xf) < 2" (identifier "uVar23") (= "=") (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 "uVar27 = (local_88[0x38] & 0xf) == 2;" (assignment_expression "uVar27 = (local_88[0x38] & 0xf) == 2" (identifier "uVar27") (= "=") (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)uVar27) {\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }" (if "if") (parenthesized_expression "((bool)uVar27)" (( "(") (cast_expression "(bool)uVar27" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar27")) () ")")) (compound_statement "{\n              uVar23 = 0;\n              uVar27 = local_135 == '\0';\n              if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }\n            }" ({ "{") (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar27 = local_135 == '\0';" (assignment_expression "uVar27 = local_135 == '\0'" (identifier "uVar27") (= "=") (binary_expression "local_135 == '\0'" (identifier "local_135") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!(bool)uVar27) {\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }" (if "if") (parenthesized_expression "(!(bool)uVar27)" (( "(") (unary_expression "!(bool)uVar27" (! "!") (cast_expression "(bool)uVar27" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar27"))) () ")")) (compound_statement "{\n                uVar23 = false;\n                uVar27 = bVar19 == 0;\n                if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }\nLAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_118;\n                local_b0 = uVar7;\n                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);\n              }" ({ "{") (expression_statement "uVar23 = false;" (assignment_expression "uVar23 = false" (identifier "uVar23") (= "=") (false "false")) (; ";")) (expression_statement "uVar27 = bVar19 == 0;" (assignment_expression "uVar27 = bVar19 == 0" (identifier "uVar27") (= "=") (binary_expression "bVar19 == 0" (identifier "bVar19") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!(bool)uVar27) {\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }" (if "if") (parenthesized_expression "(!(bool)uVar27)" (( "(") (unary_expression "!(bool)uVar27" (! "!") (cast_expression "(bool)uVar27" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar27"))) () ")")) (compound_statement "{\n                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }\n                  uVar23 = uVar4 < 0x3a;\n                  uVar27 = uVar4 == 0x3a;\n                  if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;\n                }" ({ "{") (if_statement "if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n                  }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0018ff20") (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_0045c708 + 0x10) + 0x2a61) != '\0') {\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61)" (( "(") (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x2a61")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    uVar23 = false;\n                    uVar27 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar27) goto LAB_00171878;\n                  }" ({ "{") (expression_statement "uVar23 = false;" (assignment_expression "uVar23 = false" (identifier "uVar23") (= "=") (false "false")) (; ";")) (expression_statement "uVar27 = (local_88[0x39] & 3) == 0;" (assignment_expression "uVar27 = (local_88[0x39] & 3) == 0" (identifier "uVar27") (= "=") (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)uVar27) goto LAB_00171878;" (if "if") (parenthesized_expression "(!(bool)uVar27)" (( "(") (unary_expression "!(bool)uVar27" (! "!") (cast_expression "(bool)uVar27" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar27"))) () ")")) (goto_statement "goto LAB_00171878;" (goto "goto") (statement_identifier "LAB_00171878") (; ";"))) (} "}"))) (expression_statement "uVar23 = uVar4 < 0x3a;" (assignment_expression "uVar23 = uVar4 < 0x3a" (identifier "uVar23") (= "=") (binary_expression "uVar4 < 0x3a" (identifier "uVar4") (< "<") (number_literal "0x3a"))) (; ";")) (expression_statement "uVar27 = uVar4 == 0x3a;" (assignment_expression "uVar27 = uVar4 == 0x3a" (identifier "uVar27") (= "=") (binary_expression "uVar4 == 0x3a" (identifier "uVar4") (== "==") (number_literal "0x3a"))) (; ";")) (if_statement "if ((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )) goto LAB_001714f0;" (if "if") (parenthesized_expression "((0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     ))" (( "(") (binary_expression "(0x3a < uVar4) ||\n                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )" (parenthesized_expression "(0x3a < uVar4)" (( "(") (binary_expression "0x3a < uVar4" (number_literal "0x3a") (< "<") (identifier "uVar4")) () ")")) (|| "||") (parenthesized_expression "(uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23\n                     )" (( "(") (comma_expression "uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23" (assignment_expression "uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0" (identifier "uVar23") (= "=") (binary_expression "(0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0" (parenthesized_expression "(0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1)" (( "(") (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1" (binary_expression "0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f)" (number_literal "0x40000001d48a0d0U") (>> ">>") (parenthesized_expression "((ulong)uVar4 & 0x3f)" (( "(") (binary_expression "(ulong)uVar4 & 0x3f" (cast_expression "(ulong)uVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar4")) (& "&") (number_literal "0x3f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0"))) (, ",") (unary_expression "!(bool)uVar23" (! "!") (cast_expression "(bool)uVar23" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar23")))) () ")"))) () ")")) (goto_statement "goto LAB_001714f0;" (goto "goto") (statement_identifier "LAB_001714f0") (; ";"))) (} "}"))) (labeled_statement "LAB_00171878:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;" (statement_identifier "LAB_00171878") (: ":") (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_118;" (assignment_expression "local_b8 = local_118" (identifier "local_b8") (= "=") (identifier "local_118")) (; ";")) (expression_statement "local_b0 = uVar7;" (assignment_expression "local_b0 = uVar7" (identifier "local_b0") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "FUN_00174bc0(local_e0,&local_b8,&local_e0,1);" (call_expression "FUN_00174bc0(local_e0,&local_b8,&local_e0,1)" (identifier "FUN_00174bc0") (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") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }" (else "else") (compound_statement "{\n            local_118 = (byte *)0x0;\n            bVar19 = 0;\n            uVar23 = 0;\n            uVar7 = 0;\n            uVar27 = 1;\n          }" ({ "{") (expression_statement "local_118 = (byte *)0x0;" (assignment_expression "local_118 = (byte *)0x0" (identifier "local_118") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar27 = 1;" (assignment_expression "uVar27 = 1" (identifier "uVar27") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }" (else "else") (compound_statement "{\n          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          bVar19 = 0;\n          local_118 = (byte *)0x0;\n          local_12c = uVar6 + *(uint *)(local_88 + 0x40);\n          uVar23 = 0;\n          uVar7 = 0;\n          uVar27 = 1;\n        }" ({ "{") (expression_statement "pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);" (assignment_expression "pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40)" (identifier "pbVar17") (= "=") (binary_expression "(byte *)(ulong)*(uint *)(local_88 + 0x40)" (cast_expression "(byte *)(ulong)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")"))) (* "*") (cast_expression "(uint *)(local_88 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 0x40)" (( "(") (binary_expression "local_88 + 0x40" (identifier "local_88") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_118 = (byte *)0x0;" (assignment_expression "local_118 = (byte *)0x0" (identifier "local_118") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_12c = uVar6 + *(uint *)(local_88 + 0x40);" (assignment_expression "local_12c = uVar6 + *(uint *)(local_88 + 0x40)" (identifier "local_12c") (= "=") (binary_expression "uVar6 + *(uint *)(local_88 + 0x40)" (identifier "uVar6") (+ "+") (pointer_expression "*(uint *)(local_88 + 0x40)" (* "*") (cast_expression "(uint *)(local_88 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 0x40)" (( "(") (binary_expression "local_88 + 0x40" (identifier "local_88") (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar27 = 1;" (assignment_expression "uVar27 = 1" (identifier "uVar27") (= "=") (number_literal "1")) (; ";")) (} "}")))) (labeled_statement "LAB_001714f0:\n        pbVar14 = *(byte **)local_88;" (statement_identifier "LAB_001714f0") (: ":") (expression_statement "pbVar14 = *(byte **)local_88;" (assignment_expression "pbVar14 = *(byte **)local_88" (identifier "pbVar14") (= "=") (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 "lVar20 = 8;" (assignment_expression "lVar20 = 8" (identifier "lVar20") (= "=") (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 = pbVar14;" (assignment_expression "pbVar18 = pbVar14" (identifier "pbVar18") (= "=") (identifier "pbVar14")) (; ";")) (do_statement "do {\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while ((bool)uVar27);" (do "do") (compound_statement "{\n          if (lVar20 == 0) break;\n          lVar20 = lVar20 + -1;\n          uVar23 = *pbVar16 < *pbVar18;\n          uVar27 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar20 == 0) break;" (if "if") (parenthesized_expression "(lVar20 == 0)" (( "(") (binary_expression "lVar20 == 0" (identifier "lVar20") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" (identifier "lVar20") (= "=") (binary_expression "lVar20 + -1" (identifier "lVar20") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar23 = *pbVar16 < *pbVar18;" (assignment_expression "uVar23 = *pbVar16 < *pbVar18" (identifier "uVar23") (= "=") (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "uVar27 = *pbVar16 == *pbVar18;" (assignment_expression "uVar27 = *pbVar16 == *pbVar18" (identifier "uVar27") (= "=") (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar29 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar29 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar27)" (( "(") (cast_expression "(bool)uVar27" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar27")) () ")")) (; ";")) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" (identifier "bVar26") (= "=") (false "false")) (; ";")) (expression_statement "bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;" (assignment_expression "bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23" (identifier "bVar28") (= "=") (binary_expression "(!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23" (parenthesized_expression "(!(bool)uVar23 && !(bool)uVar27)" (( "(") (binary_expression "!(bool)uVar23 && !(bool)uVar27" (unary_expression "!(bool)uVar23" (! "!") (cast_expression "(bool)uVar23" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar23"))) (&& "&&") (unary_expression "!(bool)uVar27" (! "!") (cast_expression "(bool)uVar27" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar27")))) () ")")) (== "==") (cast_expression "(bool)uVar23" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar23")))) (; ";")) (if_statement "if (bVar28) {\n          pbVar14 = pbVar14 + 8;\n        }\n        else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }" (if "if") (parenthesized_expression "(bVar28)" (( "(") (identifier "bVar28") () ")")) (compound_statement "{\n          pbVar14 = pbVar14 + 8;\n        }" ({ "{") (expression_statement "pbVar14 = pbVar14 + 8;" (assignment_expression "pbVar14 = pbVar14 + 8" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 8" (identifier "pbVar14") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }" (else "else") (compound_statement "{\n          lVar20 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar14;\n          do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);\n          pbVar14 = pbVar14 + 7;\n          if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }\n        }" ({ "{") (expression_statement "lVar20 = 7;" (assignment_expression "lVar20 = 7" (identifier "lVar20") (= "=") (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 = pbVar14;" (assignment_expression "pbVar18 = pbVar14" (identifier "pbVar18") (= "=") (identifier "pbVar14")) (; ";")) (do_statement "do {\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          } while (bVar28);" (do "do") (compound_statement "{\n            if (lVar20 == 0) break;\n            lVar20 = lVar20 + -1;\n            bVar26 = *pbVar16 < *pbVar18;\n            bVar28 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar20 == 0) break;" (if "if") (parenthesized_expression "(lVar20 == 0)" (( "(") (binary_expression "lVar20 == 0" (identifier "lVar20") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar20 = lVar20 + -1;" (assignment_expression "lVar20 = lVar20 + -1" (identifier "lVar20") (= "=") (binary_expression "lVar20 + -1" (identifier "lVar20") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar26 = *pbVar16 < *pbVar18;" (assignment_expression "bVar26 = *pbVar16 < *pbVar18" (identifier "bVar26") (= "=") (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar28 = *pbVar16 == *pbVar18;" (assignment_expression "bVar28 = *pbVar16 == *pbVar18" (identifier "bVar28") (= "=") (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar29 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar29 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar28)" (( "(") (identifier "bVar28") () ")")) (; ";")) (expression_statement "pbVar14 = pbVar14 + 7;" (assignment_expression "pbVar14 = pbVar14 + 7" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 7" (identifier "pbVar14") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if ((!bVar26 && !bVar28) != bVar26) {\n            pbVar14 = local_140;\n          }" (if "if") (parenthesized_expression "((!bVar26 && !bVar28) != bVar26)" (( "(") (binary_expression "(!bVar26 && !bVar28) != bVar26" (parenthesized_expression "(!bVar26 && !bVar28)" (( "(") (binary_expression "!bVar26 && !bVar28" (unary_expression "!bVar26" (! "!") (identifier "bVar26")) (&& "&&") (unary_expression "!bVar28" (! "!") (identifier "bVar28"))) () ")")) (!= "!=") (identifier "bVar26")) () ")")) (compound_statement "{\n            pbVar14 = local_140;\n          }" ({ "{") (expression_statement "pbVar14 = local_140;" (assignment_expression "pbVar14 = local_140" (identifier "pbVar14") (= "=") (identifier "local_140")) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_140 = pbVar14;" (assignment_expression "local_140 = pbVar14" (identifier "local_140") (= "=") (identifier "pbVar14")) (; ";")) (if_statement "if (bVar25) {\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (compound_statement "{\n          if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_00174210(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_50 = (ulong)(int)uVar6;\n          local_58 = pbVar17;\n          FUN_00177e20(local_168,&local_58);\n          uVar6 = *param_5;\n          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_00177450(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_00177fb0(local_170,&local_98);\n        }" ({ "{") (if_statement "if (bVar19 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(local_160,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }" (if "if") (parenthesized_expression "(bVar19 == 0)" (( "(") (binary_expression "bVar19 == 0" (identifier "bVar19") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_00177b00(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_00177b00(local_160,&local_58);" (call_expression "FUN_00177b00(local_160,&local_58)" (identifier "FUN_00177b00") (argument_list "(local_160,&local_58)" (( "(") (identifier "local_160") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }" (else "else") (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,uVar7);\n            local_58 = local_118;\n            FUN_00177b00(local_160,&local_58);\n          }" ({ "{") (expression_statement "local_50 = CONCAT44(local_50._4_4_,uVar7);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,uVar7)" (identifier "local_50") (= "=") (call_expression "CONCAT44(local_50._4_4_,uVar7)" (identifier "CONCAT44") (argument_list "(local_50._4_4_,uVar7)" (( "(") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "local_58 = local_118;" (assignment_expression "local_58 = local_118" (identifier "local_58") (= "=") (identifier "local_118")) (; ";")) (expression_statement "FUN_00177b00(local_160,&local_58);" (call_expression "FUN_00177b00(local_160,&local_58)" (identifier "FUN_00177b00") (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_00174210(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_00174210(local_158,puVar1,&local_88);\n          }" ({ "{") (expression_statement "FUN_00174210(local_158,puVar1,&local_88);" (call_expression "FUN_00174210(local_158,puVar1,&local_88)" (identifier "FUN_00174210") (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_50 = (ulong)(int)uVar6;" (assignment_expression "local_50 = (ulong)(int)uVar6" (identifier "local_50") (= "=") (cast_expression "(ulong)(int)uVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")))) (; ";")) (expression_statement "local_58 = pbVar17;" (assignment_expression "local_58 = pbVar17" (identifier "local_58") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "FUN_00177e20(local_168,&local_58);" (call_expression "FUN_00177e20(local_168,&local_58)" (identifier "FUN_00177e20") (argument_list "(local_168,&local_58)" (( "(") (identifier "local_168") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "uVar6 = *param_5;" (assignment_expression "uVar6 = *param_5" (identifier "uVar6") (= "=") (pointer_expression "*param_5" (* "*") (identifier "param_5"))) (; ";")) (expression_statement "local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18);" (assignment_expression "local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" (identifier "local_58") (= "=") (cast_expression "(byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18)" (( "(") (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8\n                                    | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" (identifier "uVar6") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar6 << 0x18" (identifier "uVar6") (<< "<<") (number_literal "0x18"))) () ")"))))) (; ";")) (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_00177450(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_00177450(local_148,puVar1,&local_58);\n          }" ({ "{") (expression_statement "FUN_00177450(local_148,puVar1,&local_58);" (call_expression "FUN_00177450(local_148,puVar1,&local_58)" (identifier "FUN_00177450") (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_00177fb0(local_170,&local_98);" (call_expression "FUN_00177fb0(local_170,&local_98)" (identifier "FUN_00177fb0") (argument_list "(local_170,&local_98)" (( "(") (identifier "local_170") (, ",") (pointer_expression "&local_98" (& "&") (identifier "local_98")) () ")"))) (; ";")) (} "}"))) (if_statement "if (bVar19 != 0) {\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }" (if "if") (parenthesized_expression "(bVar19 != 0)" (( "(") (binary_expression "bVar19 != 0" (identifier "bVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);\n          if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_001711f7;\n        }" ({ "{") (labeled_statement "LAB_001711e3:\n          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);" (statement_identifier "LAB_001711e3") (: ":") (expression_statement "lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (if_statement "if (lVar11 == 0) {\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0018ff20") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_001711f7;" (goto "goto") (statement_identifier "LAB_001711f7") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00171042:\n      local_100 = local_100 + 1;" (statement_identifier "LAB_00171042") (: ":") (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_002f1e60();\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_002f1e60();\n  }" ({ "{") (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" (identifier "FUN_002f1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void var_39::
     gc_process_relocs<32,var_25,var_17(anonymous_namespace)::var_7<32>,var_17(anonymous_namespace)::var_7<32>::Scan,_gold::Default_classify_reloc<4,_32,var_25>var_17>
               (Symbol_table *symtab,Layout *param_2,var_7<32> *var_59,
               Sized_relobj_file<32,var_25> *src_obj,type_7 src_indx,type_25 *var_31,size_t var_35,
               type_30 *var_36,bool param_9,size_t param_10,type_25 *plocal_syms)

{
  type_3 *pp_Var1;
  type_1 iVar2;
  type_2 *pGVar3;
  type_3 var_57;
  type_4 *var_60;
  type_3 var_65;
  type_5 **var_70;
  type_1 __position;
  type_6 *pcVar8;
  type_7 var_56;
  char var_27;
  type_7 var_32;
  type_7 var_54;
  type_8 to;
  type_9 *var_55;
  type_1 iVar14;
  size_t var_14;
  type_1 iVar16;
  type_3 p_Var17;
  type_10 *var_41;
  type_11 cVar18;
  type_7 var_53;
  long var_19;
  type_12 var_69;
  type_13 pcVar22;
  type_14 var_37;
  type_12 *var_21;
  type_5 **pp_Var25;
  type_15 _Var26;
  type_16 *pRVar27;
  type_17 in_register_00000084;
  type_7 *var_73;
  type_12 var_20;
  type_7 var_33;
  type_7 var_34;
  type_8 var_66;
  type_18 uVar33;
  bool var_29;
  bool var_22;
  bool var_28;
  type_18 uVar37;
  bool var_30;
  type_12 bVar39;
  type_19 *local_170;
  type_20 *local_168;
  type_21 *local_160;
  type_22 *local_158;
  type_23 *local_148;
  type_5 **var_63;
  char var_52;
  type_7 local_12c;
  type_24 *local_118;
  type_25 *var_72;
  var_1<> var_2;
  var_1<> var_3;
  type_26 __node_gen_2;
  type_26 __node_gen_3;
  type_26 __node_gen;
  type_26 __node_gen_1;
  _Head_base<0,_const_std::var_38<var_39::type_16*,var_4>&,_false> var_5;
  _Head_base<0,_const_std::var_38<var_39::type_16*,var_4>&,_false> var_6;
  type_24 *local_b8;
  type_7 local_b0;
  var_7<32> *local_a8;
  type_7 local_a0;
  type_27 src_id_2;
  type_27 dst_id;
  type_28 src_section_name;
  type_27 var_18;
  
  var_73 = (type_7 *)var_8(in_register_00000084,src_indx);
  bVar39 = 0;
  var_53 = (type_7)src_obj;
  if (parameters->options_ == (type_9 *)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_13)&src_section_name.field_2;
    std::__cxx11::basic_string<var_16,var_68::char_traits<var_16>,var_68::var_15<var_16>var_17>::
    var_11<var_12*>(&src_section_name,"");
  }
  else {
    (**(type_6 **)(*(long *)&var_59->s390_info + 0x80))
              (&src_section_name,var_59,(type_8)src_obj & 0xffffffff);
  }
  _Var26._M_p = src_section_name._M_dataplus._M_p;
  if (parameters->options_ == (type_9 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_9("../../gold/parameters.h",0x5c,"options");
  }
  if (parameters->options_->icf_status_ == var_10) {
LAB_00170ea5:
    var_22 = false;
    local_170 = (type_19 *)0x0;
    local_148 = (type_23 *)0x0;
    local_168 = (type_20 *)0x0;
    local_158 = (type_22 *)0x0;
    local_160 = (type_21 *)0x0;
  }
  else {
    pcVar22 = (type_13)0xffffffffffffffff;
    var_18.first = (type_16 *)&stack0xffffffffffffffb8;
    uVar33 = 0;
    uVar37 = src_section_name._M_dataplus._M_p == (type_13)0x0;
    if (!(bool)uVar37) {
      var_14 = var_13(src_section_name._M_dataplus._M_p);
      pcVar22 = _Var26._M_p + var_14;
    }
    std::__cxx11::basic_string<var_16,var_68::char_traits<var_16>,var_68::var_15<var_16>var_17>::
    var_11<var_12*>
              ((basic_string<var_16,var_68::char_traits<var_16>,var_68::var_15<var_16>var_17> *var_47)&var_18,
               _Var26._M_p,pcVar22);
    var_19 = 5;
    var_21 = (type_12 *)".text";
    pRVar27 = var_18.first;
    do {
      if (var_19 == 0) break;
      var_19 = var_19 + -1;
      var_20 = *(type_12 *)&(pRVar27->super_Object)._vptr_Object;
      uVar33 = *var_21 < var_20;
      uVar37 = *var_21 == var_20;
      var_21 = var_21 + (type_8)bVar39 * -2 + 1;
      pRVar27 = (type_16 *)((long)pRVar27 + (type_8)bVar39 * -2 + 1);
    } while ((bool)uVar37);
    var_22 = false;
    var_28 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;
    if (!var_28) {
      var_19 = 0xf;
      var_21 = (type_12 *)".gnu.linkonce.t";
      pRVar27 = var_18.first;
      do {
        if (var_19 == 0) break;
        var_19 = var_19 + -1;
        var_20 = *(type_12 *)&(pRVar27->super_Object)._vptr_Object;
        var_22 = *var_21 < var_20;
        var_28 = *var_21 == var_20;
        var_21 = var_21 + (type_8)bVar39 * -2 + 1;
        pRVar27 = (type_16 *)((long)pRVar27 + (type_8)bVar39 * -2 + 1);
      } while (var_28);
      if ((!var_22 && !var_28) != var_22) {
        if (var_18.first != (type_16 *)&stack0xffffffffffffffb8) {
          var_23(var_18.first);
        }
        goto LAB_00170ea5;
      }
    }
    if (var_18.first != (type_16 *)&stack0xffffffffffffffb8) {
      var_23(var_18.first);
    }
    var_18.second = var_53;
    var_18.first = (type_16 *)var_59;
    local_160 = std::__detail::
                _Map_base<std::var_38<var_39::type_16*,var_4>,var_68::var_38<var_58::var_38<var_39::type_16*,var_4>,_gold::Icf::Reloc_info>,var_68::var_15<std::var_38<var_58::var_38<var_39::type_16*,var_4>,_gold::Icf::Reloc_info>var_17>,var_68::__detail::_Select1st,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,_gold::Section_id_hash,var_68::__detail::_Mod_range_hashing,var_68::__detail::_Default_ranged_hash,var_68::__detail::_Prime_rehash_policy,var_68::__detail::var_24<true,_false,var_25>,var_25>
                ::operator[var_47]((_Map_base<std::var_38<var_39::type_16*,var_4>,var_68::var_38<var_58::var_38<var_39::type_16*,var_4>,_gold::Icf::Reloc_info>,var_68::var_15<std::var_38<var_58::var_38<var_39::type_16*,var_4>,_gold::Icf::Reloc_info>var_17>,var_68::__detail::_Select1st,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,_gold::Section_id_hash,var_68::__detail::_Mod_range_hashing,var_68::__detail::_Default_ranged_hash,var_68::__detail::_Prime_rehash_policy,var_68::__detail::var_24<true,_false,var_25>,var_25>
                              *var_47)&symtab->icf_->reloc_info_list_,(type_29 *)&var_18);
    local_158 = &local_160->symbol_info;
    local_168 = &local_160->addend_info;
    local_148 = &local_160->offset_info;
    local_170 = &local_160->reloc_addend_size_info;
    var_22 = true;
  }
  if (parameters->options_ == (type_9 *)0x0) {
                    /* WARNING: Subroutine does not return */
    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_4::section_may_have_icf_unsafe_pointers) {
                    /* try { // try from 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */
      var_52 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);
      goto LAB_00170f04;
    }
    pcVar8 = *(type_6 **)(*(long *)param_2 + 0x98);
    var_28 = pcVar8 < type_4::do_section_may_have_icf_unsafe_pointers;
    var_30 = pcVar8 == type_4::do_section_may_have_icf_unsafe_pointers;
    if (!var_30) {
      var_52 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);
      goto LAB_00170f04;
    }
    var_19 = 0xc;
    var_21 = (type_12 *)".rodata._ZTV";
    _Var26 = src_section_name._M_dataplus;
    do {
      if (var_19 == 0) break;
      var_19 = var_19 + -1;
      var_28 = *var_21 < (type_12)*_Var26._M_p;
      var_30 = *var_21 == *_Var26._M_p;
      var_21 = var_21 + (type_8)bVar39 * -2 + 1;
      _Var26._M_p = (type_13)((type_12 *)_Var26._M_p + (type_8)bVar39 * -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_12 *)".data.rel.ro._ZTV";
      _Var26 = src_section_name._M_dataplus;
      do {
        if (var_19 == 0) break;
        var_19 = var_19 + -1;
        var_29 = *var_21 < (type_12)*_Var26._M_p;
        var_28 = *var_21 == *_Var26._M_p;
        var_21 = var_21 + (type_8)bVar39 * -2 + 1;
        _Var26._M_p = (type_13)((type_12 *)_Var26._M_p + (type_8)bVar39 * -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_12 *)".rodata._ZTC";
        _Var26 = src_section_name._M_dataplus;
        do {
          if (var_19 == 0) break;
          var_19 = var_19 + -1;
          var_30 = *var_21 < (type_12)*_Var26._M_p;
          var_28 = *var_21 == *_Var26._M_p;
          var_21 = var_21 + (type_8)bVar39 * -2 + 1;
          _Var26._M_p = (type_13)((type_12 *)_Var26._M_p + (type_8)bVar39 * -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_12 *)".data.rel.ro._ZTC";
          _Var26 = src_section_name._M_dataplus;
          do {
            if (var_19 == 0) break;
            var_19 = var_19 + -1;
            var_29 = *var_21 < (type_12)*_Var26._M_p;
            var_28 = *var_21 == *_Var26._M_p;
            var_21 = var_21 + (type_8)bVar39 * -2 + 1;
            _Var26._M_p = (type_13)((type_12 *)_Var26._M_p + (type_8)bVar39 * -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_12 *)".eh_frame";
            _Var26 = src_section_name._M_dataplus;
            do {
              if (var_19 == 0) break;
              var_19 = var_19 + -1;
              var_30 = *var_21 < (type_12)*_Var26._M_p;
              var_28 = *var_21 == *_Var26._M_p;
              var_21 = var_21 + (type_8)bVar39 * -2 + 1;
              _Var26._M_p = (type_13)((type_12 *)_Var26._M_p + (type_8)bVar39 * -2 + 1);
            } while (var_28);
            var_52 = (!var_30 && !var_28) != var_30;
            goto LAB_00170f04;
          }
        }
      }
    }
  }
  var_52 = '\0';
LAB_00170f04:
  if (var_31 != (type_25 *)0x0) {
    var_63 = (type_5 **)0x0;
    var_72 = (type_25 *)0x0;
    do {
      var_32 = var_73[1];
      var_56 = var_32 >> 0x18;
      var_33 = var_73[2];
      var_34 = ((var_32 & 0xff0000) >> 8 | (var_32 & 0xff00) << 8 | var_32 << 0x18) >> 8;
      var_32 = var_33 >> 0x18 | (var_33 & 0xff0000) >> 8 | (var_33 & 0xff00) << 8 | var_33 << 0x18;
      if (var_34 < var_35) {
        if (var_36 == (type_30 *)0x0) {
                    /* WARNING: Subroutine does not return */
          var_9("../../gold/gc.h",0xea,"gc_process_relocs");
        }
        var_33 = var_34 << 4;
        var_37 = *(type_14 *)((long)&(var_36->super_Output_data).address_ + (type_8)var_33 + 6);
        var_37 = var_37 << 8 | var_37 >> 8;
        var_54 = (type_7)var_37;
        if (var_37 < 0xff00) {
LAB_001710c0:
          var_34 = *(type_7 *)((long)&(var_36->super_Output_data)._vptr_Output_data +
                            (type_8)var_33 + 4);
          var_34 = var_34 >> 0x18 | (var_34 & 0xff0000) >> 8 | (var_34 & 0xff00) << 8 |
                   var_34 << 0x18;
          local_12c = var_32 + var_34;
          if (var_22) {
            var_18.second = var_54;
            var_18.first = (type_16 *)var_59;
            std::
            vector<std::var_38<var_39::type_16*,var_4>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>var_17>
            ::var_50<std::var_38<var_39::type_16*,var_4>var_17>
                      (&local_160->section_info,(var_38<var_39::type_16*,var_4> *var_47)&var_18);
            var_28 = true;
            if ((*(type_12 *)((long)&(var_36->super_Output_data).address_ + (type_8)var_33 + 4) & 0xf)
                == 3) goto LAB_00171112;
LAB_00170fb2:
            var_18.first = (type_16 *)0x0;
            std::vector<var_39::var_40*,var_68::var_15<var_39::var_40*>var_17>::var_50<var_39::var_40*>
                      (local_158,(var_40 **)&var_18);
            goto LAB_00170fcd;
          }
        }
        else {
          if (var_37 == 0xffff) {
            var_41 = (type_10 *)(var_59->s390_info).rosegment_gap;
            if (var_41 == (type_10 *)0x0) {
              var_41 = (type_10 *)(**(type_6 **)(*(long *)&var_59->s390_info + 0xd8))(var_59);
              (var_59->s390_info).rosegment_gap = (uint64_t)var_41;
            }
            var_54 = type_10::var_42(var_41,(type_31 *)var_59,var_34);
            goto LAB_001710c0;
          }
          var_34 = *(type_7 *)((long)&(var_36->super_Output_data)._vptr_Output_data +
                            (type_8)var_33 + 4);
          var_34 = var_34 >> 0x18 | (var_34 & 0xff0000) >> 8 | (var_34 & 0xff00) << 8 |
                   var_34 << 0x18;
          local_12c = var_32 + var_34;
          if (!var_22) goto LAB_00171042;
          var_18.first = (type_16 *)0x0;
          var_18._8_8_ = var_18._8_8_ & 0xffffffff00000000;
                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */
          std::
          vector<std::var_38<var_39::type_16*,var_4>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>var_17>
          ::var_50<std::var_38<var_39::type_16*,var_4>var_17>
                    (&local_160->section_info,(var_38<var_39::type_16*,var_4> *var_47)&var_18);
          var_28 = false;
          if ((*(type_12 *)((long)&(var_36->super_Output_data).address_ + (type_8)var_33 + 4) & 0xf) !=
              3) goto LAB_00170fb2;
LAB_00171112:
          var_18.first = (type_16 *)0xffffffffffffffff;
          std::vector<var_39::var_40*,var_68::var_15<var_39::var_40*>var_17>::var_50<var_39::var_40*>
                    (local_158,(var_40 **)&var_18);
LAB_00170fcd:
          var_18.first = (type_16 *)(type_8)var_34;
          var_18._8_8_ = var_43((int)var_32);
          std::
          vector<std::var_38<var_44,var_45>,var_68::var_15<std::var_38<var_44,var_45>var_17>var_17>
          ::var_50<std::var_38<var_44,var_45>var_17>
                    (local_168,(var_38<var_44,var_45> *var_47)&var_18);
          var_32 = *var_73;
          var_18.first = (type_16 *)
                         (type_8)(var_32 >> 0x18 | (var_32 & 0xff0000) >> 8 | (var_32 & 0xff00) << 8
                                | var_32 << 0x18);
          iVar2._M_current =
               (local_148->super__Vector_base<var_46,var_68::var_15<var_46>var_17>var_47
               )._M_impl._M_finish;
          if (iVar2._M_current ==
              (local_148->super__Vector_base<var_46,var_68::var_15<var_46>var_17>var_47)
              ._M_impl._M_end_of_storage) {
            std::vector<var_46,var_68::var_15<var_46>var_17>::
            var_48<var_49&>(local_148,iVar2,(type_8 *)&var_18);
          }
          else {
            *iVar2._M_current = (type_8)var_18.first;
            (local_148->super__Vector_base<var_46,var_68::var_15<var_46>var_17>var_47).
            _M_impl._M_finish = iVar2._M_current + 1;
          }
          dst_id.first = (type_16 *)((type_8)dst_id.first & 0xffffffff00000000);
          std::vector<var_51,var_68::var_15<var_51>var_17>::var_50<var_51>
                    (local_170,(type_7 *)&dst_id);
          if (!var_28) goto LAB_00171042;
        }
        local_118 = (type_24 *)var_59;
        if ((var_52 == '\0') ||
           ((*(type_12 *)((long)&(var_36->super_Output_data).address_ + (type_8)var_33 + 4) & 0xf) == 1
           )) {
LAB_001711d0:
          if (var_53 != var_54) goto LAB_001711e3;
        }
        else {
          var_55 = parameters->options_;
          if (var_55 == (type_9 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_9("../../gold/parameters.h",0x5c,"options");
          }
          if (((var_55->shared_).value != false) ||
             ((var_56 < 0x3b && ((0x40000001d48a0d0U >> ((type_8)var_56 & 0x3f) & 1) != 0)))) {
            var_37 = *(type_14 *)((long)&(var_36->super_Output_data).address_ + (type_8)var_33 + 6);
            local_a0 = (type_7)(type_14)(var_37 << 8 | var_37 >> 8);
            __node_gen_2._M_h = (type_32 *)&symtab->icf_->fptr_section_id_;
            local_a8 = var_59;
            std::
            _Hashtable<std::var_38<var_39::type_16*,var_4>,var_68::var_38<var_39::type_16*,var_4>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>,var_68::__detail::_Identity,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,_gold::Section_id_hash,var_68::__detail::_Mod_range_hashing,var_68::__detail::_Default_ranged_hash,var_68::__detail::_Prime_rehash_policy,var_68::__detail::var_24<true,var_25,var_25>var_17>
            ::
            _M_insert<std::var_38<var_39::type_16*,var_4>,var_68::__detail::_AllocNode<std::var_15<std::__detail::_Hash_node<std::var_38<var_39::type_16*,var_4>,var_25>var_17>var_17>var_17>
                      ((_Hashtable<std::var_38<var_39::type_16*,var_4>,var_68::var_38<var_39::type_16*,var_4>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>,var_68::__detail::_Identity,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,_gold::Section_id_hash,var_68::__detail::_Mod_range_hashing,var_68::__detail::_Default_ranged_hash,var_68::__detail::_Prime_rehash_policy,var_68::__detail::var_24<true,var_25,var_25>var_17>
                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);
            goto LAB_001711d0;
          }
          if (var_53 == var_54) goto LAB_00171042;
LAB_001711f7:
          if ((var_55->gc_sections_).value != false) {
            pGVar3 = symtab->gc_;
            var_57 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent;
            cVar18._M_node =
                 &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;
            dst_id.first = (type_16 *)local_118;
            p_Var17 = cVar18._M_node;
            src_id_2.first = (type_16 *)var_59;
            src_id_2.second = var_53;
            dst_id.second = var_54;
            if (var_57 == (type_3)0x0) {
LAB_00171288:
              var_5._M_head_impl = &src_id_2;
              iVar14 = std::
                       _Rb_tree<std::var_38<var_39::type_16*,var_4>,var_68::var_38<var_58::var_38<var_39::type_16*,var_4>,var_68::unordered_set<std::var_38<var_39::type_16*,var_4>,_gold::Section_id_hash,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>var_17>var_17>,var_68::_Select1st<std::var_38<var_58::var_38<var_39::type_16*,var_4>,var_68::unordered_set<std::var_38<var_39::type_16*,var_4>,_gold::Section_id_hash,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>var_17>var_17>var_17>,var_68::less<std::var_38<var_39::type_16*,var_4>var_17>,var_68::var_15<std::var_38<var_58::var_38<var_39::type_16*,var_4>,var_68::unordered_set<std::var_38<var_39::type_16*,var_4>,_gold::Section_id_hash,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>var_17>var_17>var_17>var_17>
                       ::
                       _M_emplace_hint_unique<var_58::piecewise_construct_t&,var_68::var_1<var_58::var_38<var_39::type_16*,var_4>&>,var_68::var_1<>var_17>
                                 (&(pGVar3->section_reloc_map_)._M_t,cVar18,
                                  (piecewise_construct_t *)&std::piecewise_construct,
                                  (var_1<var_58::var_38<var_39::type_16*,var_4>&> *var_47)&var_5,
                                  &var_2);
            }
            else {
              do {
                while ((iVar14._M_node = var_57, *(var_7<32> **var_47)(iVar14._M_node + 1) < var_59
                       || ((var_59 == *(var_7<32> **var_47)(iVar14._M_node + 1) &&
                           (*(type_7 *)&iVar14._M_node[1]._M_parent < var_53))))) {
                  pp_Var1 = &(iVar14._M_node)->_M_right;
                  iVar14._M_node = p_Var17;
                  var_57 = *pp_Var1;
                  if (*pp_Var1 == (type_3)0x0) goto LAB_0017126a;
                }
                p_Var17 = iVar14._M_node;
                var_57 = (iVar14._M_node)->_M_left;
              } while ((iVar14._M_node)->_M_left != (type_3)0x0);
LAB_0017126a:
              var_28 = iVar14._M_node == cVar18._M_node;
              cVar18._M_node = iVar14._M_node;
              if (((var_28) || (var_59 < *(var_7<32> **var_47)(iVar14._M_node + 1))) ||
                 ((var_59 == *(var_7<32> **var_47)(iVar14._M_node + 1) &&
                  (var_53 < *(type_7 *)&iVar14._M_node[1]._M_parent)))) goto LAB_00171288;
            }
            __node_gen_1._M_h = (type_32 *)&iVar14._M_node[1]._M_left;
            std::
            _Hashtable<std::var_38<var_39::type_16*,var_4>,var_68::var_38<var_39::type_16*,var_4>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>,var_68::__detail::_Identity,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,_gold::Section_id_hash,var_68::__detail::_Mod_range_hashing,var_68::__detail::_Default_ranged_hash,var_68::__detail::_Prime_rehash_policy,var_68::__detail::var_24<true,var_25,var_25>var_17>
            ::
            _M_insert<var_58::var_38<var_39::type_16*,var_4>&,var_68::__detail::_AllocNode<std::var_15<std::__detail::_Hash_node<std::var_38<var_39::type_16*,var_4>,var_25>var_17>var_17>var_17>
                      ((_Hashtable<std::var_38<var_39::type_16*,var_4>,var_68::var_38<var_39::type_16*,var_4>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>,var_68::__detail::_Identity,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,_gold::Section_id_hash,var_68::__detail::_Mod_range_hashing,var_68::__detail::_Default_ranged_hash,var_68::__detail::_Prime_rehash_policy,var_68::__detail::var_24<true,var_25,var_25>var_17>
                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);
            var_60 = parameters->target_;
            if (var_60 == (type_4 *)0x0) {
                    /* WARNING: Subroutine does not return */
              var_9("../../gold/parameters.h",0x73,"sized_target");
            }
            if (var_60->_vptr_Target[0x41] != var_61<32,var_25>::var_62) {
              (*var_60->_vptr_Target[0x41])
                        (var_60,symtab,var_59,(type_8)src_obj & 0xffffffff,local_118,(type_8)var_54,
                         (type_8)local_12c);
            }
            if (var_63 != (type_5 **)0x0) {
              pGVar3 = symtab->gc_;
              var_18.first = (type_16 *)&stack0xffffffffffffffb8;
              var_14 = var_13((char *)var_63);
              std::__cxx11::basic_string<var_16,var_68::char_traits<var_16>,var_68::var_15<var_16>var_17>::
              var_11<var_12*>
                        ((basic_string<var_16,var_68::char_traits<var_16>,var_68::var_15<var_16>var_17> *var_47)
                         &var_18,var_63,(type_12 *)((long)var_63 + var_14));
              iVar16 = std::
                       _Rb_tree<std::__cxx11::basic_string<var_16,var_68::char_traits<var_16>,var_68::var_15<var_16>var_17>,var_68::var_38<var_58::__cxx11::basic_string<var_16,var_68::char_traits<var_16>,var_68::var_15<var_16>var_17>,var_68::unordered_set<std::var_38<var_39::type_16*,var_4>,_gold::Section_id_hash,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>var_17>var_17>,var_68::_Select1st<std::var_38<var_58::__cxx11::basic_string<var_16,var_68::char_traits<var_16>,var_68::var_15<var_16>var_17>,var_68::unordered_set<std::var_38<var_39::type_16*,var_4>,_gold::Section_id_hash,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>var_17>var_17>var_17>,var_68::less<std::__cxx11::basic_string<var_16,var_68::char_traits<var_16>,var_68::var_15<var_16>var_17>var_17>,var_68::var_15<std::var_38<var_58::__cxx11::basic_string<var_16,var_68::char_traits<var_16>,var_68::var_15<var_16>var_17>,var_68::unordered_set<std::var_38<var_39::type_16*,var_4>,_gold::Section_id_hash,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>var_17>var_17>var_17>var_17>
                       ::var_64(&(pGVar3->cident_sections_)._M_t,
                              (basic_string<var_16,var_68::char_traits<var_16>,var_68::var_15<var_16>var_17> *var_47)
                              &var_18);
              if (var_18.first != (type_16 *)&stack0xffffffffffffffb8) {
                var_23(var_18.first);
              }
              pGVar3 = symtab->gc_;
              if ((type_33 *)iVar16._M_node !=
                  &(pGVar3->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {
                var_57 = (pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                         _M_parent;
                cVar18._M_node =
                     &(pGVar3->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;
                var_18.second = var_53;
                p_Var17 = cVar18._M_node;
                if (var_57 == (type_3)0x0) {
LAB_001717c0:
                  var_6._M_head_impl = (var_38<var_39::type_16*,var_4> *var_47)&var_18;
                  var_18.first = (type_16 *)var_59;
                  iVar14 = std::
                           _Rb_tree<std::var_38<var_39::type_16*,var_4>,var_68::var_38<var_58::var_38<var_39::type_16*,var_4>,var_68::unordered_set<std::var_38<var_39::type_16*,var_4>,_gold::Section_id_hash,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>var_17>var_17>,var_68::_Select1st<std::var_38<var_58::var_38<var_39::type_16*,var_4>,var_68::unordered_set<std::var_38<var_39::type_16*,var_4>,_gold::Section_id_hash,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>var_17>var_17>var_17>,var_68::less<std::var_38<var_39::type_16*,var_4>var_17>,var_68::var_15<std::var_38<var_58::var_38<var_39::type_16*,var_4>,var_68::unordered_set<std::var_38<var_39::type_16*,var_4>,_gold::Section_id_hash,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>var_17>var_17>var_17>var_17>
                           ::
                           _M_emplace_hint_unique<var_58::piecewise_construct_t&,var_68::var_1<var_58::var_38<var_39::type_16*,var_4>&>,var_68::var_1<>var_17>
                                     (&(pGVar3->section_reloc_map_)._M_t,cVar18,
                                      (piecewise_construct_t *)&std::piecewise_construct,
                                      (var_1<var_58::var_38<var_39::type_16*,var_4>&> *var_47)
                                      &var_6,&var_3);
                }
                else {
                  do {
                    while ((iVar14._M_node = var_57,
                           *(var_7<32> **var_47)(iVar14._M_node + 1) < var_59 ||
                           ((var_59 == *(var_7<32> **var_47)(iVar14._M_node + 1) &&
                            (*(type_7 *)&iVar14._M_node[1]._M_parent < var_53))))) {
                      pp_Var1 = &(iVar14._M_node)->_M_right;
                      iVar14._M_node = p_Var17;
                      var_57 = *pp_Var1;
                      if (*pp_Var1 == (type_3)0x0) goto LAB_001713d2;
                    }
                    p_Var17 = iVar14._M_node;
                    var_57 = (iVar14._M_node)->_M_left;
                  } while ((iVar14._M_node)->_M_left != (type_3)0x0);
LAB_001713d2:
                  var_28 = cVar18._M_node == iVar14._M_node;
                  cVar18._M_node = iVar14._M_node;
                  if (((var_28) || (var_59 < *(var_7<32> **var_47)(iVar14._M_node + 1))) ||
                     ((var_18.first = (type_16 *)var_59,
                      var_59 == *(var_7<32> **var_47)(iVar14._M_node + 1) &&
                      (var_53 < *(type_7 *)&iVar14._M_node[1]._M_parent)))) goto LAB_001717c0;
                }
                for (var_65 = iVar16._M_node[2]._M_left; var_65 != (type_3)0x0;
                    var_65 = *(type_3 *)var_65) {
                  __node_gen._M_h = (type_32 *)&iVar14._M_node[1]._M_left;
                  std::
                  _Hashtable<std::var_38<var_39::type_16*,var_4>,var_68::var_38<var_39::type_16*,var_4>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>,var_68::__detail::_Identity,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,_gold::Section_id_hash,var_68::__detail::_Mod_range_hashing,var_68::__detail::_Default_ranged_hash,var_68::__detail::_Prime_rehash_policy,var_68::__detail::var_24<true,var_25,var_25>var_17>
                  ::
                  _M_insert<var_58::var_38<var_39::type_16*,var_4>&,var_68::__detail::_AllocNode<std::var_15<std::__detail::_Hash_node<std::var_38<var_39::type_16*,var_4>,var_25>var_17>var_17>var_17>
                            ((_Hashtable<std::var_38<var_39::type_16*,var_4>,var_68::var_38<var_39::type_16*,var_4>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>,var_68::__detail::_Identity,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,_gold::Section_id_hash,var_68::__detail::_Mod_range_hashing,var_68::__detail::_Default_ranged_hash,var_68::__detail::_Prime_rehash_policy,var_68::__detail::var_24<true,var_25,var_25>var_17>
                              *var_47)&iVar14._M_node[1]._M_left,&var_65->_M_parent,&__node_gen,1);
                }
              }
            }
          }
        }
      }
      else {
        if (var_34 < var_59[1].got_mod_index_offset_) {
          dst_id.first = (type_16 *)0x0;
LAB_001716a8:
                    /* WARNING: Subroutine does not return */
          var_9("../../gold/gc.h",0x11c,"gc_process_relocs");
        }
        var_66 = (type_8)(var_34 - var_59[1].got_mod_index_offset_);
        if ((type_8)(*(long *)&var_59[2].s390_info.machine_code - *(long *)&var_59[2].s390_info >> 3)
            <= var_66) {
                    /* WARNING: Subroutine does not return */
          var_9("../../gold/object.h",0x8ad,"global_symbol");
        }
        dst_id.first = *(type_16 **)(*(long *)&var_59[2].s390_info + var_66 * 8);
        if (dst_id.first == (type_16 *)0x0) goto LAB_001716a8;
        if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {
          dst_id.first = (type_16 *)Symbol_table::var_67(symtab,(var_40 *)dst_id.first);
        }
        if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {
          var_33 = *(type_7 *)&((dst_id.first)->super_Object).xindex_;
          local_118 = ((type_34 *)
                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;
          local_12c = var_32 + var_33;
          if (((type_8)local_118->output_lists_[2].
                      super__Vector_base<var_39::Output_data*,var_68::var_15<var_39::Output_data*>var_17>.
                      _M_impl._M_finish & 0x100000000) == 0) {
            var_54 = *(type_7 *)&((dst_id.first)->super_Object).name_.field_2;
            var_69 = (type_12)((dst_id.first)->super_Object).shnum_ & 0xf;
            var_20 = *(type_12 *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;
            uVar33 = var_69 < 2;
            uVar37 = var_69 == 2;
            if ((bool)uVar37) {
              uVar33 = 0;
              uVar37 = var_52 == '\0';
              if (!(bool)uVar37) {
                uVar33 = false;
                uVar37 = var_20 == 0;
                if (!(bool)uVar37) {
                  if (parameters->options_ == (type_9 *)0x0) {
                    /* WARNING: Subroutine does not return */
                    var_9("../../gold/parameters.h",0x5c,"options");
                  }
                  if ((parameters->options_->shared_).value != false) {
                    uVar33 = false;
                    uVar37 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;
                    if (!(bool)uVar37) goto LAB_00171878;
                  }
                  uVar33 = var_56 < 0x3a;
                  uVar37 = var_56 == 0x3a;
                  if ((0x3a < var_56) ||
                     (uVar33 = (0x40000001d48a0d0U >> ((type_8)var_56 & 0x3f) & 1) != 0, !(bool)uVar33
                     )) goto LAB_001714f0;
                }
LAB_00171878:
                __node_gen_3._M_h = (type_32 *)&symtab->icf_->fptr_section_id_;
                local_b8 = local_118;
                local_b0 = var_54;
                std::
                _Hashtable<std::var_38<var_39::type_16*,var_4>,var_68::var_38<var_39::type_16*,var_4>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>,var_68::__detail::_Identity,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,_gold::Section_id_hash,var_68::__detail::_Mod_range_hashing,var_68::__detail::_Default_ranged_hash,var_68::__detail::_Prime_rehash_policy,var_68::__detail::var_24<true,var_25,var_25>var_17>
                ::
                _M_insert<std::var_38<var_39::type_16*,var_4>,var_68::__detail::_AllocNode<std::var_15<std::__detail::_Hash_node<std::var_38<var_39::type_16*,var_4>,var_25>var_17>var_17>var_17>
                          ((_Hashtable<std::var_38<var_39::type_16*,var_4>,var_68::var_38<var_39::type_16*,var_4>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>,var_68::__detail::_Identity,var_68::equal_to<std::var_38<var_39::type_16*,var_4>var_17>,_gold::Section_id_hash,var_68::__detail::_Mod_range_hashing,var_68::__detail::_Default_ranged_hash,var_68::__detail::_Prime_rehash_policy,var_68::__detail::var_24<true,var_25,var_25>var_17>
                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);
              }
            }
          }
          else {
            local_118 = (type_24 *)0x0;
            var_20 = 0;
            uVar33 = 0;
            var_54 = 0;
            uVar37 = 1;
          }
        }
        else {
          var_33 = *(type_7 *)&((dst_id.first)->super_Object).xindex_;
          var_20 = 0;
          local_118 = (type_24 *)0x0;
          local_12c = var_32 + var_33;
          uVar33 = 0;
          var_54 = 0;
          uVar37 = 1;
        }
LAB_001714f0:
        var_70 = ((dst_id.first)->super_Object)._vptr_Object;
        var_19 = 8;
        var_21 = (type_12 *)"__start_";
        pp_Var25 = var_70;
        do {
          if (var_19 == 0) break;
          var_19 = var_19 + -1;
          uVar33 = *var_21 < *(type_12 *)pp_Var25;
          uVar37 = *var_21 == *(type_12 *)pp_Var25;
          var_21 = var_21 + (type_8)bVar39 * -2 + 1;
          pp_Var25 = (type_5 **)((long)pp_Var25 + (type_8)bVar39 * -2 + 1);
        } while ((bool)uVar37);
        var_28 = false;
        var_30 = (!(bool)uVar33 && !(bool)uVar37) == (bool)uVar33;
        if (var_30) {
          var_70 = var_70 + 1;
        }
        else {
          var_19 = 7;
          var_21 = (type_12 *)"__stop_";
          pp_Var25 = var_70;
          do {
            if (var_19 == 0) break;
            var_19 = var_19 + -1;
            var_28 = *var_21 < *(type_12 *)pp_Var25;
            var_30 = *var_21 == *(type_12 *)pp_Var25;
            var_21 = var_21 + (type_8)bVar39 * -2 + 1;
            pp_Var25 = (type_5 **)((long)pp_Var25 + (type_8)bVar39 * -2 + 1);
          } while (var_30);
          var_70 = (type_5 **)((long)var_70 + 7);
          if ((!var_28 && !var_30) != var_28) {
            var_70 = var_63;
          }
        }
        var_63 = var_70;
        if (var_22) {
          if (var_20 == 0) {
            var_18.first = (type_16 *)0x0;
            var_18._8_8_ = (type_8)(type_7)var_18._12_4_ << 0x20;
            std::
            vector<std::var_38<var_39::type_16*,var_4>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>var_17>
            ::var_50<std::var_38<var_39::type_16*,var_4>var_17>
                      (&local_160->section_info,(var_38<var_39::type_16*,var_4> *var_47)&var_18);
          }
          else {
            var_18.second = var_54;
            var_18.first = (type_16 *)local_118;
            std::
            vector<std::var_38<var_39::type_16*,var_4>,var_68::var_15<std::var_38<var_39::type_16*,var_4>var_17>var_17>
            ::var_50<std::var_38<var_39::type_16*,var_4>var_17>
                      (&local_160->section_info,(var_38<var_39::type_16*,var_4> *var_47)&var_18);
          }
          __position._M_current =
               (local_158->super__Vector_base<var_39::var_40*,var_68::var_15<var_39::var_40*>var_17>var_47).
               _M_impl._M_finish;
          if (__position._M_current ==
              (local_158->super__Vector_base<var_39::var_40*,var_68::var_15<var_39::var_40*>var_17>var_47)._M_impl
              ._M_end_of_storage) {
            std::vector<var_39::var_40*,var_68::var_15<var_39::var_40*>var_17>::
            var_48<var_39::var_40*var_71&>(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_68::var_15<var_39::var_40*>var_17>var_47)._M_impl.
            _M_finish = __position._M_current + 1;
          }
          var_18.first = (type_16 *)(type_8)var_33;
          var_18._8_8_ = var_43((int)var_32);
          std::
          vector<std::var_38<var_44,var_45>,var_68::var_15<std::var_38<var_44,var_45>var_17>var_17>
          ::var_50<std::var_38<var_44,var_45>var_17>
                    (local_168,(var_38<var_44,var_45> *var_47)&var_18);
          var_32 = *var_73;
          var_18.first = (type_16 *)
                         (type_8)(var_32 >> 0x18 | (var_32 & 0xff0000) >> 8 | (var_32 & 0xff00) << 8
                                | var_32 << 0x18);
          iVar2._M_current =
               (local_148->super__Vector_base<var_46,var_68::var_15<var_46>var_17>var_47
               )._M_impl._M_finish;
          if (iVar2._M_current ==
              (local_148->super__Vector_base<var_46,var_68::var_15<var_46>var_17>var_47)
              ._M_impl._M_end_of_storage) {
            std::vector<var_46,var_68::var_15<var_46>var_17>::
            var_48<var_49&>(local_148,iVar2,(type_8 *)&var_18);
          }
          else {
            *iVar2._M_current = (type_8)var_18.first;
            (local_148->super__Vector_base<var_46,var_68::var_15<var_46>var_17>var_47).
            _M_impl._M_finish = iVar2._M_current + 1;
          }
          src_id_2.first = (type_16 *)((type_8)src_id_2.first & 0xffffffff00000000);
          std::vector<var_51,var_68::var_15<var_51>var_17>::var_50<var_51>
                    (local_170,(type_7 *)&src_id_2);
        }
        if (var_20 != 0) {
LAB_001711e3:
          var_55 = parameters->options_;
          if (var_55 == (type_9 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_9("../../gold/parameters.h",0x5c,"options");
          }
          goto LAB_001711f7;
        }
      }
LAB_00171042:
      var_72 = var_72 + 1;
      var_73 = var_73 + 3;
    } while (var_31 != var_72);
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<var_16,var_68::char_traits<var_16>,var_68::var_15<var_16>var_17>var_74
       *)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: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (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) (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (labeled_statement label: (statement_identifier) (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: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (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 (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)))) (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))))))))) 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: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (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: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement))))

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

{
  undefined8 *puVar1;
  long *plVar2;
  code *pcVar3;
  uint uVar4;
  char cVar5;
  uint uVar6;
  uint uVar7;
  long lVar8;
  size_t sVar9;
  long lVar10;
  long lVar11;
  long lVar12;
  long lVar13;
  byte *pbVar14;
  ushort uVar15;
  byte *pbVar16;
  byte *pbVar17;
  byte *pbVar18;
  byte bVar19;
  long lVar20;
  uint uVar21;
  ulong uVar22;
  undefined1 uVar23;
  bool bVar24;
  bool bVar25;
  bool bVar26;
  undefined1 uVar27;
  bool bVar28;
  byte bVar29;
  long local_170;
  long local_168;
  long local_160;
  long local_158;
  long local_148;
  byte *local_140;
  char local_135;
  int local_12c;
  byte *local_118;
  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];
  
  bVar29 = 0;
  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {
    local_78[0] = local_68;
    FUN_00174550(local_78,"");
  }
  else {
    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);
  }
  pbVar17 = local_78[0];
  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 0) {
LAB_00170ea5:
    bVar25 = false;
    local_170 = 0;
    local_148 = 0;
    local_168 = 0;
    local_158 = 0;
    local_160 = 0;
  }
  else {
    pbVar14 = (byte *)0xffffffffffffffff;
    local_58 = local_48;
    uVar23 = 0;
    uVar27 = local_78[0] == (byte *)0x0;
    if (!(bool)uVar27) {
      sVar9 = strlen((char *)local_78[0]);
      pbVar14 = pbVar17 + sVar9;
    }
    FUN_00174550(&local_58,pbVar17,pbVar14);
    lVar20 = 5;
    pbVar17 = (byte *)".text";
    pbVar14 = local_58;
    do {
      if (lVar20 == 0) break;
      lVar20 = lVar20 + -1;
      uVar23 = *pbVar17 < *pbVar14;
      uVar27 = *pbVar17 == *pbVar14;
      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
    } while ((bool)uVar27);
    bVar25 = false;
    bVar26 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;
    if (!bVar26) {
      lVar20 = 0xf;
      pbVar17 = (byte *)".gnu.linkonce.t";
      pbVar14 = local_58;
      do {
        if (lVar20 == 0) break;
        lVar20 = lVar20 + -1;
        bVar25 = *pbVar17 < *pbVar14;
        bVar26 = *pbVar17 == *pbVar14;
        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
      } while (bVar26);
      if ((!bVar25 && !bVar26) != bVar25) {
        if (local_58 != local_48) {
          FUN_002f1e60(local_58);
        }
        goto LAB_00170ea5;
      }
    }
    if (local_58 != local_48) {
      FUN_002f1e60(local_58);
    }
    local_50 = CONCAT44(local_50._4_4_,param_4);
    local_58 = param_3;
    local_160 = FUN_00179620(*(long *)(param_1 + 0x298) + 0xa8,&local_58);
    local_158 = local_160 + 0x18;
    local_168 = local_160 + 0x30;
    local_148 = local_160 + 0x48;
    local_170 = local_160 + 0x60;
    bVar25 = true;
  }
  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
  }
  if ((*(int *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x9050) == 2) &&
     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {
    pcVar3 = *(code **)(*param_2 + 0x10);
    if (pcVar3 != FUN_00173890) {
                    /* try { // try from 00171b23 to 00171c06 has its CatchHandler @ 00171c1f */
      local_135 = (*pcVar3)(param_2,local_78[0]);
      goto LAB_00170f04;
    }
    pcVar3 = *(code **)(*param_2 + 0x98);
    bVar26 = pcVar3 < FUN_00173800;
    bVar28 = pcVar3 == FUN_00173800;
    if (!bVar28) {
      local_135 = (*pcVar3)(param_2,local_78[0]);
      goto LAB_00170f04;
    }
    lVar20 = 0xc;
    pbVar17 = (byte *)".rodata._ZTV";
    pbVar14 = local_78[0];
    do {
      if (lVar20 == 0) break;
      lVar20 = lVar20 + -1;
      bVar26 = *pbVar17 < *pbVar14;
      bVar28 = *pbVar17 == *pbVar14;
      pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
    } while (bVar28);
    bVar24 = false;
    bVar26 = (!bVar26 && !bVar28) == bVar26;
    if (!bVar26) {
      lVar20 = 0x11;
      pbVar17 = (byte *)".data.rel.ro._ZTV";
      pbVar14 = local_78[0];
      do {
        if (lVar20 == 0) break;
        lVar20 = lVar20 + -1;
        bVar24 = *pbVar17 < *pbVar14;
        bVar26 = *pbVar17 == *pbVar14;
        pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
        pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
      } while (bVar26);
      bVar28 = false;
      bVar26 = (!bVar24 && !bVar26) == bVar24;
      if (!bVar26) {
        lVar20 = 0xc;
        pbVar17 = (byte *)".rodata._ZTC";
        pbVar14 = local_78[0];
        do {
          if (lVar20 == 0) break;
          lVar20 = lVar20 + -1;
          bVar28 = *pbVar17 < *pbVar14;
          bVar26 = *pbVar17 == *pbVar14;
          pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
          pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
        } while (bVar26);
        bVar24 = false;
        bVar26 = (!bVar28 && !bVar26) == bVar28;
        if (!bVar26) {
          lVar20 = 0x11;
          pbVar17 = (byte *)".data.rel.ro._ZTC";
          pbVar14 = local_78[0];
          do {
            if (lVar20 == 0) break;
            lVar20 = lVar20 + -1;
            bVar24 = *pbVar17 < *pbVar14;
            bVar26 = *pbVar17 == *pbVar14;
            pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
            pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
          } while (bVar26);
          bVar28 = false;
          bVar26 = (!bVar24 && !bVar26) == bVar24;
          if (!bVar26) {
            lVar20 = 9;
            pbVar17 = (byte *)".eh_frame";
            pbVar14 = local_78[0];
            do {
              if (lVar20 == 0) break;
              lVar20 = lVar20 + -1;
              bVar28 = *pbVar17 < *pbVar14;
              bVar26 = *pbVar17 == *pbVar14;
              pbVar17 = pbVar17 + (ulong)bVar29 * -2 + 1;
              pbVar14 = pbVar14 + (ulong)bVar29 * -2 + 1;
            } while (bVar26);
            local_135 = (!bVar28 && !bVar26) != bVar28;
            goto LAB_00170f04;
          }
        }
      }
    }
  }
  local_135 = '\0';
LAB_00170f04:
  if (param_6 != 0) {
    local_140 = (byte *)0x0;
    local_100 = 0;
    do {
      uVar6 = param_5[1];
      uVar4 = uVar6 >> 0x18;
      uVar7 = param_5[2];
      uVar21 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;
      uVar6 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;
      if (uVar21 < param_7) {
        if (param_8 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0018ff20("../../gold/gc.h",0xea,"gc_process_relocs");
        }
        lVar20 = (ulong)(uVar21 << 4) + param_8;
        uVar15 = *(ushort *)(lVar20 + 0xe) << 8 | *(ushort *)(lVar20 + 0xe) >> 8;
        uVar7 = (uint)uVar15;
        if (uVar15 < 0xff00) {
LAB_001710c0:
          uVar21 = *(uint *)(lVar20 + 4);
          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |
                   uVar21 << 0x18;
          local_12c = uVar6 + uVar21;
          if (bVar25) {
            local_50 = CONCAT44(local_50._4_4_,uVar7);
            local_58 = param_3;
            FUN_00177b00(local_160,&local_58);
            bVar26 = true;
            if ((*(byte *)(lVar20 + 0xc) & 0xf) == 3) goto LAB_00171112;
LAB_00170fb2:
            local_58 = (byte *)0x0;
            FUN_00177c80(local_158,&local_58);
            goto LAB_00170fcd;
          }
        }
        else {
          if (uVar15 == 0xffff) {
            lVar11 = *(long *)(param_3 + 0x40);
            if (lVar11 == 0) {
              lVar11 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);
              *(long *)(param_3 + 0x40) = lVar11;
            }
            uVar7 = FUN_001d1ac0(lVar11,param_3,uVar21);
            goto LAB_001710c0;
          }
          uVar21 = *(uint *)(lVar20 + 4);
          uVar21 = uVar21 >> 0x18 | (uVar21 & 0xff0000) >> 8 | (uVar21 & 0xff00) << 8 |
                   uVar21 << 0x18;
          local_12c = uVar6 + uVar21;
          if (!bVar25) goto LAB_00171042;
          local_58 = (byte *)0x0;
          local_50 = local_50 & 0xffffffff00000000;
                    /* try { // try from 00170f95 to 00171aaf has its CatchHandler @ 00171c1f */
          FUN_00177b00(local_160,&local_58);
          bVar26 = false;
          if ((*(byte *)(lVar20 + 0xc) & 0xf) != 3) goto LAB_00170fb2;
LAB_00171112:
          local_58 = (byte *)0xffffffffffffffff;
          FUN_00177c80(local_158,&local_58);
LAB_00170fcd:
          local_58 = (byte *)(ulong)uVar21;
          local_50 = (ulong)(int)uVar6;
          FUN_00177e20(local_168,&local_58);
          uVar6 = *param_5;
          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8
                                    | uVar6 << 0x18);
          puVar1 = *(undefined8 **)(local_148 + 8);
          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {
            FUN_00177450(local_148,puVar1,&local_58);
          }
          else {
            *puVar1 = local_58;
            *(undefined8 **)(local_148 + 8) = puVar1 + 1;
          }
          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);
          FUN_00177fb0(local_170,&local_88);
          if (!bVar26) goto LAB_00171042;
        }
        local_118 = param_3;
        if ((local_135 == '\0') || ((*(byte *)(lVar20 + 0xc) & 0xf) == 1)) {
LAB_001711d0:
          if (param_4 != uVar7) goto LAB_001711e3;
        }
        else {
          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);
          if (lVar11 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
          }
          if ((*(char *)(lVar11 + 0x2a61) != '\0') ||
             ((uVar4 < 0x3b && ((0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0)))) {
            local_a0 = (uint)(ushort)(*(ushort *)(lVar20 + 0xe) << 8 |
                                     *(ushort *)(lVar20 + 0xe) >> 8);
            local_e8 = *(long *)(param_1 + 0x298) + 0x68;
            local_a8 = param_3;
            FUN_00174bc0(local_e8,&local_a8,&local_e8,1);
            goto LAB_001711d0;
          }
          if (param_4 == uVar7) goto LAB_00171042;
LAB_001711f7:
          if (*(char *)(lVar11 + 0x2809) != '\0') {
            lVar11 = *(long *)(param_1 + 0x290);
            lVar20 = lVar11 + 0x28;
            local_88 = local_118;
            lVar12 = lVar20;
            lVar10 = *(long *)(lVar11 + 0x30);
            local_98 = param_3;
            local_90 = param_4;
            local_80 = uVar7;
            if (*(long *)(lVar11 + 0x30) == 0) {
LAB_00171288:
              local_c8 = &local_98;
              lVar8 = FUN_00174880(lVar11 + 0x20,lVar20,&DAT_0038b644,&local_c8,&local_ea);
            }
            else {
              do {
                while ((lVar8 = lVar10, *(byte **)(lVar8 + 0x20) < param_3 ||
                       ((param_3 == *(byte **)(lVar8 + 0x20) && (*(uint *)(lVar8 + 0x28) < param_4))
                       ))) {
                  plVar2 = (long *)(lVar8 + 0x18);
                  lVar8 = lVar12;
                  lVar10 = *plVar2;
                  if (*plVar2 == 0) goto LAB_0017126a;
                }
                lVar12 = lVar8;
                lVar10 = *(long *)(lVar8 + 0x10);
              } while (*(long *)(lVar8 + 0x10) != 0);
LAB_0017126a:
              bVar26 = lVar8 == lVar20;
              lVar20 = lVar8;
              if (((bVar26) || (param_3 < *(byte **)(lVar8 + 0x20))) ||
                 ((param_3 == *(byte **)(lVar8 + 0x20) && (param_4 < *(uint *)(lVar8 + 0x28)))))
              goto LAB_00171288;
            }
            local_d0 = lVar8 + 0x30;
            FUN_00174c60(local_d0,&local_88,&local_d0,1);
            plVar2 = *(long **)(PTR_DAT_0045c708 + 0x18);
            if (plVar2 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
              FUN_0018ff20("../../gold/parameters.h",0x73,"sized_target");
            }
            if (*(code **)(*plVar2 + 0x208) != FUN_00172d60) {
              (**(code **)(*plVar2 + 0x208))
                        (plVar2,param_1,param_3,param_4,local_118,uVar7,local_12c);
            }
            if (local_140 != (byte *)0x0) {
              lVar20 = *(long *)(param_1 + 0x290);
              local_58 = local_48;
              sVar9 = strlen((char *)local_140);
              FUN_00174550(&local_58,local_140,local_140 + sVar9);
              lVar20 = FUN_001775a0(lVar20 + 0x88,&local_58);
              if (local_58 != local_48) {
                FUN_002f1e60();
              }
              lVar11 = *(long *)(param_1 + 0x290);
              if (lVar20 != lVar11 + 0x90) {
                lVar12 = lVar11 + 0x28;
                local_50 = CONCAT44(local_50._4_4_,param_4);
                lVar10 = lVar12;
                lVar8 = *(long *)(lVar11 + 0x30);
                if (*(long *)(lVar11 + 0x30) == 0) {
LAB_001717c0:
                  local_c0 = &local_58;
                  local_58 = param_3;
                  lVar13 = FUN_00174880(lVar11 + 0x20,lVar12,&DAT_0038b644,&local_c0,&local_e9);
                }
                else {
                  do {
                    while ((lVar13 = lVar8, *(byte **)(lVar13 + 0x20) < param_3 ||
                           ((param_3 == *(byte **)(lVar13 + 0x20) &&
                            (*(uint *)(lVar13 + 0x28) < param_4))))) {
                      plVar2 = (long *)(lVar13 + 0x18);
                      lVar13 = lVar10;
                      lVar8 = *plVar2;
                      if (*plVar2 == 0) goto LAB_001713d2;
                    }
                    lVar10 = lVar13;
                    lVar8 = *(long *)(lVar13 + 0x10);
                  } while (*(long *)(lVar13 + 0x10) != 0);
LAB_001713d2:
                  bVar26 = lVar12 == lVar13;
                  lVar12 = lVar13;
                  if (((bVar26) || (param_3 < *(byte **)(lVar13 + 0x20))) ||
                     ((local_58 = param_3, param_3 == *(byte **)(lVar13 + 0x20) &&
                      (param_4 < *(uint *)(lVar13 + 0x28))))) goto LAB_001717c0;
                }
                for (puVar1 = *(undefined8 **)(lVar20 + 0x50); puVar1 != (undefined8 *)0x0;
                    puVar1 = (undefined8 *)*puVar1) {
                  local_d8 = lVar13 + 0x30;
                  FUN_00174c60(lVar13 + 0x30,puVar1 + 1,&local_d8,1);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar21 < *(uint *)(param_3 + 0x120)) {
          local_88 = (byte *)0x0;
LAB_001716a8:
                    /* WARNING: Subroutine does not return */
          FUN_0018ff20("../../gold/gc.h",0x11c,"gc_process_relocs");
        }
        uVar22 = (ulong)(uVar21 - *(uint *)(param_3 + 0x120));
        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar22) {
                    /* WARNING: Subroutine does not return */
          FUN_0018ff20("../../gold/object.h",0x8ad,"global_symbol");
        }
        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar22 * 8);
        if (local_88 == (byte *)0x0) goto LAB_001716a8;
        if ((local_88[0x3a] & 0x10) != 0) {
          local_88 = (byte *)FUN_00284df0(param_1,local_88);
        }
        if ((local_88[0x3a] & 7) == 0) {
          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);
          local_118 = *(byte **)(local_88 + 0x10);
          local_12c = uVar6 + *(uint *)(local_88 + 0x40);
          if ((local_118[0x3c] & 1) == 0) {
            uVar7 = *(uint *)(local_88 + 0x18);
            bVar19 = local_88[0x3b] >> 5 & 1;
            uVar23 = (local_88[0x38] & 0xf) < 2;
            uVar27 = (local_88[0x38] & 0xf) == 2;
            if ((bool)uVar27) {
              uVar23 = 0;
              uVar27 = local_135 == '\0';
              if (!(bool)uVar27) {
                uVar23 = false;
                uVar27 = bVar19 == 0;
                if (!(bool)uVar27) {
                  if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
                    FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
                  }
                  if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x2a61) != '\0') {
                    uVar23 = false;
                    uVar27 = (local_88[0x39] & 3) == 0;
                    if (!(bool)uVar27) goto LAB_00171878;
                  }
                  uVar23 = uVar4 < 0x3a;
                  uVar27 = uVar4 == 0x3a;
                  if ((0x3a < uVar4) ||
                     (uVar23 = (0x40000001d48a0d0U >> ((ulong)uVar4 & 0x3f) & 1) != 0, !(bool)uVar23
                     )) goto LAB_001714f0;
                }
LAB_00171878:
                local_e0 = *(long *)(param_1 + 0x298) + 0x68;
                local_b8 = local_118;
                local_b0 = uVar7;
                FUN_00174bc0(local_e0,&local_b8,&local_e0,1);
              }
            }
          }
          else {
            local_118 = (byte *)0x0;
            bVar19 = 0;
            uVar23 = 0;
            uVar7 = 0;
            uVar27 = 1;
          }
        }
        else {
          pbVar17 = (byte *)(ulong)*(uint *)(local_88 + 0x40);
          bVar19 = 0;
          local_118 = (byte *)0x0;
          local_12c = uVar6 + *(uint *)(local_88 + 0x40);
          uVar23 = 0;
          uVar7 = 0;
          uVar27 = 1;
        }
LAB_001714f0:
        pbVar14 = *(byte **)local_88;
        lVar20 = 8;
        pbVar16 = (byte *)"__start_";
        pbVar18 = pbVar14;
        do {
          if (lVar20 == 0) break;
          lVar20 = lVar20 + -1;
          uVar23 = *pbVar16 < *pbVar18;
          uVar27 = *pbVar16 == *pbVar18;
          pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;
          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;
        } while ((bool)uVar27);
        bVar26 = false;
        bVar28 = (!(bool)uVar23 && !(bool)uVar27) == (bool)uVar23;
        if (bVar28) {
          pbVar14 = pbVar14 + 8;
        }
        else {
          lVar20 = 7;
          pbVar16 = (byte *)"__stop_";
          pbVar18 = pbVar14;
          do {
            if (lVar20 == 0) break;
            lVar20 = lVar20 + -1;
            bVar26 = *pbVar16 < *pbVar18;
            bVar28 = *pbVar16 == *pbVar18;
            pbVar16 = pbVar16 + (ulong)bVar29 * -2 + 1;
            pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;
          } while (bVar28);
          pbVar14 = pbVar14 + 7;
          if ((!bVar26 && !bVar28) != bVar26) {
            pbVar14 = local_140;
          }
        }
        local_140 = pbVar14;
        if (bVar25) {
          if (bVar19 == 0) {
            local_58 = (byte *)0x0;
            local_50 = (ulong)local_50._4_4_ << 0x20;
            FUN_00177b00(local_160,&local_58);
          }
          else {
            local_50 = CONCAT44(local_50._4_4_,uVar7);
            local_58 = local_118;
            FUN_00177b00(local_160,&local_58);
          }
          puVar1 = *(undefined8 **)(local_158 + 8);
          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {
            FUN_00174210(local_158,puVar1,&local_88);
          }
          else {
            *puVar1 = local_88;
            *(undefined8 **)(local_158 + 8) = puVar1 + 1;
          }
          local_50 = (ulong)(int)uVar6;
          local_58 = pbVar17;
          FUN_00177e20(local_168,&local_58);
          uVar6 = *param_5;
          local_58 = (byte *)(ulong)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8
                                    | uVar6 << 0x18);
          puVar1 = *(undefined8 **)(local_148 + 8);
          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {
            FUN_00177450(local_148,puVar1,&local_58);
          }
          else {
            *puVar1 = local_58;
            *(undefined8 **)(local_148 + 8) = puVar1 + 1;
          }
          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);
          FUN_00177fb0(local_170,&local_98);
        }
        if (bVar19 != 0) {
LAB_001711e3:
          lVar11 = *(long *)(PTR_DAT_0045c708 + 0x10);
          if (lVar11 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
          }
          goto LAB_001711f7;
        }
      }
LAB_00171042:
      local_100 = local_100 + 1;
      param_5 = param_5 + 3;
    } while (param_6 != local_100);
  }
  if (local_78[0] != local_68) {
    FUN_002f1e60();
  }
  return;
}

