
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void gc_process_relocs(Target_sparc<32,_true> * this, Symbol_table *
   symtab, Layout * layout, Sized_relobj_file<32,_true> * object, uint data_shndx, uint param_5,
   uchar * prelocs, size_t reloc_count, Output_section * output_section, bool
   needs_special_offset_handling, size_t local_symbol_count, uchar * plocal_symbols) */

void __thiscall
anon_unknown.dwarf_484c35::Target_sparc<32,_true>::gc_process_relocs
          (Target_sparc<32,_true> *this,Symbol_table *symtab,Layout *layout,
          Sized_relobj_file<32,_true> *object,uint data_shndx,uint param_5,uchar *prelocs,
          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,
          size_t param_10,uchar *plocal_symbols)

{
  _Rb_tree_header *p_Var1;
  _Base_ptr *pp_Var2;
  General_options *pGVar3;
  pointer puVar4;
  uint uVar5;
  pointer ppSVar6;
  _Base_ptr p_Var7;
  Target *pTVar8;
  Garbage_collection *pGVar9;
  undefined4 *puVar10;
  _func_int_varargs *p_Var11;
  Icf *pIVar12;
  undefined1 *puVar13;
  _Alloc_hider _Var14;
  Parameters *pPVar15;
  _func_int_varargs **pp_Var16;
  size_t sVar17;
  Xindex *pXVar18;
  pointer pcVar19;
  int extraout_ECX;
  int iVar20;
  _Base_ptr p_Var21;
  _Rb_tree_header *p_Var22;
  int extraout_ECX_00;
  int extraout_ECX_01;
  int extraout_ECX_02;
  byte bVar23;
  uint uVar24;
  Relobj *pRVar25;
  General_options **ppGVar26;
  undefined4 *puVar27;
  byte *pbVar28;
  undefined **ppuVar29;
  undefined4 unaff_EDI;
  _func_int_varargs **pp_Var30;
  bool bVar31;
  bool bVar32;
  bool bVar33;
  byte bVar34;
  General_options *pGStack_d0;
  undefined1 auStack_cc [4];
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *local_c8;
  __node_gen_type *local_c4;
  undefined1 *local_c0;
  Reloc_addend_size_info *local_bc;
  Addend_info *local_b8;
  size_t local_b4;
  Parameters **local_b0;
  _func_int_varargs **local_ac;
  byte local_a6;
  char local_a5;
  Offset_info *local_a4;
  Symbol_info *local_a0;
  mapped_type *local_9c;
  int local_98;
  Output_segment *local_94;
  pointer local_90;
  undefined **local_8c;
  Relobj *local_88;
  Icf *local_84;
  undefined1 *local_80;
  undefined1 local_7c [12];
  _Rb_tree_header *local_70;
  __node_gen_type __node_gen_1;
  __node_gen_type __node_gen;
  Section_id *local_64;
  Icf *local_60;
  Section_id src_id_1;
  Section_id dst_id;
  string src_section_name;
  Section_id src_id;
  pointer local_2c;
  _Alloc_hider local_28;
  
  bVar34 = 0;
  local_8c = &_GLOBAL_OFFSET_TABLE_;
  local_b0 = &gold::parameters;
  pGVar3 = gold::parameters->options_;
  if (pGVar3 == (General_options *)0x0) {
    pGStack_d0 = pGVar3;
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if (pGVar3->icf_status_ == ICF_NONE) {
    local_c8 = &src_section_name.field_2;
    pGStack_d0 = (General_options *)0x0;
    src_section_name._M_dataplus._M_p = (pointer)local_c8;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>(&src_section_name,"","");
    ppGVar26 = (General_options **)auStack_cc;
    iVar20 = extraout_ECX_00;
  }
  else {
    (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])
              (&src_section_name,object,data_shndx);
    local_c8 = &src_section_name.field_2;
    ppGVar26 = &pGStack_d0;
    iVar20 = extraout_ECX;
  }
  _Var14._M_p = src_section_name._M_dataplus._M_p;
  pPVar15 = *local_b0;
  if (pPVar15->options_ == (General_options *)0x0) {
    *(undefined4 *)((int)ppGVar26 + -4) = unaff_EDI;
    *(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf;
    *(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c;
    *(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2989;
    gold::do_gold_unreachable
              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),
               *(char **)((int)ppGVar26 + -8));
  }
  if (pPVar15->options_->icf_status_ == ICF_NONE) {
LAB_000a1f35:
    local_a5 = '\0';
    local_bc = (Reloc_addend_size_info *)0x0;
    local_a4 = (Offset_info *)0x0;
    local_b8 = (Addend_info *)0x0;
    local_a0 = (Symbol_info *)0x0;
    local_9c = (mapped_type *)0x0;
  }
  else {
    local_88 = (Relobj *)&local_2c;
    src_id.first = (Relobj *)&local_2c;
    pcVar19 = (pointer)0xffffffff;
    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {
      *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;
      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa27ef;
      sVar17 = strlen(*(char **)((int)ppGVar26 + -0x10));
      pcVar19 = _Var14._M_p + sVar17;
    }
    *(undefined4 *)((int)ppGVar26 + -4) = 0;
    *(pointer *)((int)ppGVar26 + -8) = pcVar19;
    local_84 = (Icf *)&src_id;
    *(pointer *)((int)ppGVar26 + -0xc) = _Var14._M_p;
    *(Icf **)((int)ppGVar26 + -0x10) = local_84;
                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */
    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2804;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>();
    iVar20 = 5;
    bVar33 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar26 + -0x10);
    bVar31 = ppGVar26 == (General_options **)0x0;
    ppuVar29 = local_8c + -0x67293;
    pRVar25 = src_id.first;
    do {
      if (iVar20 == 0) break;
      iVar20 = iVar20 + -1;
      bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;
      bVar33 = *(byte *)ppuVar29 < bVar23;
      bVar31 = *(byte *)ppuVar29 == bVar23;
      ppuVar29 = (undefined **)((int)ppuVar29 + (uint)bVar34 * -2 + 1);
      pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);
    } while (bVar31);
    bVar32 = false;
    bVar33 = (!bVar33 && !bVar31) == bVar33;
    if (!bVar33) {
      iVar20 = 0xf;
      pbVar28 = (byte *)((int)local_8c + -0x19ca46);
      pRVar25 = src_id.first;
      do {
        if (iVar20 == 0) break;
        iVar20 = iVar20 + -1;
        bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;
        bVar32 = *pbVar28 < bVar23;
        bVar33 = *pbVar28 == bVar23;
        pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;
        pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);
      } while (bVar33);
      if ((!bVar32 && !bVar33) != bVar32) {
        if (src_id.first == local_88) {
          pPVar15 = *local_b0;
        }
        else {
          *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;
          *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;
          operator_delete(*(void **)((int)ppGVar26 + -0x10));
          pPVar15 = *local_b0;
          iVar20 = extraout_ECX_02;
        }
        goto LAB_000a1f35;
      }
    }
    if (src_id.first != local_88) {
      *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;
      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29dd;
      operator_delete(*(void **)((int)ppGVar26 + -0x10));
    }
    *(Icf **)((int)ppGVar26 + -0xc) = local_84;
    src_id.first = (Relobj *)object;
    src_id.second = data_shndx;
    local_84 = symtab->icf_;
    *(Reloc_info_list **)((int)ppGVar26 + -0x10) = &symtab->icf_->reloc_info_list_;
    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2873;
    local_9c = 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>
                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc));
    local_a0 = &local_9c->symbol_info;
    local_bc = &local_9c->reloc_addend_size_info;
    local_b8 = &local_9c->addend_info;
    local_a4 = &local_9c->offset_info;
    pPVar15 = *local_b0;
    local_a5 = '\x01';
    iVar20 = extraout_ECX_01;
  }
  if (pPVar15->options_ == (General_options *)0x0) {
    *(int *)((int)ppGVar26 + -4) = iVar20;
    *(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf;
    *(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c;
    *(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29a5;
    gold::do_gold_unreachable
              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),
               *(char **)((int)ppGVar26 + -8));
  }
  if (reloc_count != 0) {
    local_ac = (_func_int_varargs **)0x0;
    local_c0 = local_7c;
    local_b4 = 0;
    local_c4 = &__node_gen;
    puVar27 = ppGVar26;
    do {
      uVar24 = *(uint *)(prelocs + 4);
      uVar5 = *(uint *)(prelocs + 8);
      local_90 = (pointer)(uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |
                          uVar5 << 0x18);
      uVar24 = ((uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 | uVar24 << 0x18) >> 8;
      ppGVar26 = (General_options **)puVar27;
      if (uVar24 < param_10) {
        if (plocal_symbols == (uchar *)0x0) {
          puVar27[-2] = local_8c + -0x65123;
          puVar27[-3] = 0xea;
          puVar27[-4] = (int)local_8c + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          puVar27[-5] = &UNK_000a2909;
          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);
        }
        local_88 = (Relobj *)
                   (uint)(ushort)(*(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) << 8 |
                                 *(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) >> 8);
        if (local_88 < (Relobj *)0xff00) {
LAB_000a2144:
          uVar5 = *(uint *)(plocal_symbols + uVar24 * 0x10 + 4);
          pRVar25 = (Relobj *)
                    (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18
                    );
          local_98 = (int)&local_90->first + (int)pRVar25;
          if (local_a5 != '\0') {
            src_id.first = (Relobj *)object;
            src_id.second = (uint)local_88;
            puVar27[-3] = (Icf *)&src_id;
            puVar27[-4] = local_9c;
            local_84 = (Icf *)&src_id;
            puVar27[-5] = 0xa2188;
            std::
            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                      ((vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
                        *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]);
            bVar23 = plocal_symbols[uVar24 * 0x10 + 0xc];
            bVar33 = true;
joined_r0x000a200c:
            if ((bVar23 & 0xf) == 3) {
              puVar27[-3] = local_84;
              puVar27[-4] = local_a0;
              src_id.first = (Relobj *)0xffffffff;
              puVar27[-5] = 0xa21b7;
              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
              emplace_back<gold::Symbol*>
                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],
                         (Symbol **)puVar27[-3]);
            }
            else {
              puVar27[-3] = local_84;
              puVar27[-4] = local_a0;
              src_id.first = (Relobj *)0x0;
              puVar27[-5] = 0xa202a;
              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
              emplace_back<gold::Symbol*>
                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],
                         (Symbol **)puVar27[-3]);
            }
            src_id.first = pRVar25;
            puVar27[-3] = local_84;
            puVar27[-4] = local_b8;
            local_2c = local_90;
            src_id.second = 0;
            local_28._M_p = (pointer)((int)local_90 >> 0x1f);
            puVar27[-5] = 0xa2057;
            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>_>
                      ((vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
                        *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3]);
            src_id.second = 0;
            uVar24 = *(uint *)prelocs;
            puVar4 = (local_a4->
                     super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                     )._M_impl._M_finish;
            src_id.first = (Relobj *)
                           (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |
                           uVar24 << 0x18);
            if (puVar4 == (local_a4->
                          super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                          )._M_impl._M_end_of_storage) {
              puVar27[-2] = local_84;
              puVar27[-3] = puVar4;
              puVar27[-4] = local_a4;
              puVar27[-5] = 0xa2722;
              std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::
              _M_realloc_insert<long_long_unsigned_int_const&>
                        ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)
                         puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);
            }
            else {
              *(Relobj **)puVar4 = src_id.first;
              *(uint *)((int)puVar4 + 4) = 0;
              (local_a4->
              super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
              _M_impl._M_finish = puVar4 + 1;
            }
            dst_id.first = (Relobj *)0x0;
            puVar27[-3] = &dst_id;
            puVar27[-4] = local_bc;
            puVar27[-5] = 0xa209f;
            std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                      ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],
                       (uint *)puVar27[-3]);
            if (!bVar33) goto LAB_000a20dc;
          }
          if ((Relobj *)data_shndx != local_88) {
            local_94 = (Output_segment *)object;
            goto LAB_000a20bc;
          }
        }
        else {
          if (local_88 == (Relobj *)0xffff) {
            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;
            if (pXVar18 == (Xindex *)0x0) {
              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.
                         _vptr_Object;
              puVar27[-4] = object;
              p_Var11 = pp_Var16[0x1b];
              puVar27[-5] = 0xa26de;
              pXVar18 = (Xindex *)(*p_Var11)();
              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;
            }
            puVar27[-2] = uVar24;
            puVar27[-3] = object;
            puVar27[-4] = pXVar18;
            puVar27[-5] = 0xa21e1;
            local_88 = (Relobj *)
                       gold::Xindex::sym_xindex_to_shndx
                                 ((Xindex *)puVar27[-4],(Object *)puVar27[-3],puVar27[-2]);
            goto LAB_000a2144;
          }
          uVar5 = *(uint *)(plocal_symbols + uVar24 * 0x10 + 4);
          pRVar25 = (Relobj *)
                    (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18
                    );
          local_98 = (int)&local_90->first + (int)pRVar25;
          if (local_a5 != '\0') {
            src_id.first = (Relobj *)0x0;
            puVar27[-3] = (Icf *)&src_id;
            puVar27[-4] = local_9c;
            src_id.second = 0;
            local_84 = (Icf *)&src_id;
                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */
            puVar27[-5] = 0xa1ffe;
            std::
            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                      ((vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
                        *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]);
            bVar23 = plocal_symbols[uVar24 * 0x10 + 0xc];
            bVar33 = false;
            goto joined_r0x000a200c;
          }
        }
      }
      else {
        if (uVar24 < object->local_symbol_count_) {
          src_id_1.first = (Relobj *)0x0;
LAB_000a244f:
          puVar27[-2] = local_8c + -0x65123;
          puVar27[-3] = 0x11c;
          puVar27[-4] = (int)local_8c + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          puVar27[-5] = 0xa2470;
          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);
        }
        uVar24 = uVar24 - object->local_symbol_count_;
        ppSVar6 = (object->symbols_).
                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start
        ;
        local_84 = (Icf *)(object->symbols_).
                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                          _M_finish;
        if ((uint)((int)local_84 - (int)ppSVar6 >> 2) <= uVar24) {
          puVar27[-2] = local_8c + -0x65096;
          puVar27[-3] = 0x8ad;
          puVar27[-4] = (int)local_8c + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          puVar27[-5] = 0xa294f;
          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);
        }
        src_id_1.first = (Relobj *)ppSVar6[uVar24];
        if (src_id_1.first == (Relobj *)0x0) goto LAB_000a244f;
        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {
          puVar27[-3] = src_id_1.first;
          puVar27[-4] = symtab;
          puVar27[-5] = 0xa243a;
          src_id_1.first =
               (Relobj *)
               gold::Symbol_table::resolve_forwards
                         ((Symbol_table *)puVar27[-4],(Symbol *)puVar27[-3]);
        }
        bVar33 = (((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0;
        if (bVar33) {
          local_94 = ((anon_union_4_3_b0f6f408_for_u1_ *)
                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;
          bVar33 = ((uint)local_94->output_lists_[3].
                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                          ._M_impl._M_end_of_storage & 1) == 0;
          if (bVar33) {
            bVar23 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5;
            local_88 = (Relobj *)
                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;
            bVar33 = (bVar23 & 1) == 0;
            local_a6 = bVar23 & 1;
          }
          else {
            local_a6 = 0;
            local_88 = (Relobj *)0x0;
            local_94 = (Output_segment *)0x0;
          }
          pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_98 = (int)&local_90->first + (int)pRVar25;
        }
        else {
          pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_a6 = 0;
          local_88 = (Relobj *)0x0;
          local_94 = (Output_segment *)0x0;
          local_98 = (int)&local_90->first + (int)pRVar25;
        }
        bVar31 = false;
        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;
        iVar20 = 8;
        pbVar28 = (byte *)((int)local_8c + -0x19ca26);
        pp_Var30 = pp_Var16;
        do {
          if (iVar20 == 0) break;
          iVar20 = iVar20 + -1;
          bVar31 = *pbVar28 < *(byte *)pp_Var30;
          bVar33 = *pbVar28 == *(byte *)pp_Var30;
          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;
          pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);
        } while (bVar33);
        bVar32 = false;
        bVar33 = (!bVar31 && !bVar33) == bVar31;
        if (bVar33) {
          local_ac = pp_Var16 + 2;
        }
        else {
          iVar20 = 7;
          pbVar28 = (byte *)((int)local_8c + -0x19ca1d);
          pp_Var30 = pp_Var16;
          do {
            if (iVar20 == 0) break;
            iVar20 = iVar20 + -1;
            bVar32 = *pbVar28 < *(byte *)pp_Var30;
            bVar33 = *pbVar28 == *(byte *)pp_Var30;
            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;
            pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);
          } while (bVar33);
          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);
          if ((!bVar32 && !bVar33) != bVar32) {
            pp_Var16 = local_ac;
          }
          local_ac = pp_Var16;
        }
        if (local_a5 != '\0') {
          if (local_a6 == 0) {
            src_id.first = (Relobj *)0x0;
            src_id.second = 0;
          }
          else {
            src_id.first = (Relobj *)local_94;
            src_id.second = (uint)local_88;
          }
          puVar27[-3] = (Icf *)&src_id;
          puVar27[-4] = local_9c;
          local_84 = (Icf *)&src_id;
          puVar27[-5] = 0xa22ed;
          std::
          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                    ((vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
                      *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]);
          ppSVar6 = (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
                    _M_impl._M_finish;
          if (ppSVar6 ==
              (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
              _M_end_of_storage) {
            puVar27[-2] = &src_id_1;
            puVar27[-3] = ppSVar6;
            puVar27[-4] = local_a0;
            puVar27[-5] = 0xa2743;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
            _M_realloc_insert<gold::Symbol*_const&>
                      ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],
                       (Symbol **)puVar27[-3],(Symbol **)puVar27[-2]);
          }
          else {
            *ppSVar6 = (Symbol *)src_id_1.first;
            (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
            _M_finish = ppSVar6 + 1;
          }
          puVar27[-3] = local_84;
          puVar27[-4] = local_b8;
          local_2c = local_90;
          src_id.first = pRVar25;
          src_id.second = 0;
          local_28._M_p = (pointer)((int)local_90 >> 0x1f);
          puVar27[-5] = 0xa2338;
          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>_>
                    ((vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
                      *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3]);
          src_id.second = 0;
          uVar24 = *(uint *)prelocs;
          puVar4 = (local_a4->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          src_id.first = (Relobj *)
                         (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |
                         uVar24 << 0x18);
          if (puVar4 == (local_a4->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            puVar27[-2] = local_84;
            puVar27[-3] = puVar4;
            puVar27[-4] = local_a4;
            puVar27[-5] = 0xa2702;
            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::
            _M_realloc_insert<long_long_unsigned_int_const&>
                      ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)
                       puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);
          }
          else {
            *(Relobj **)puVar4 = src_id.first;
            *(undefined4 *)((int)puVar4 + 4) = 0;
            (local_a4->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar4 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          puVar27[-3] = &dst_id;
          puVar27[-4] = local_bc;
          puVar27[-5] = 0xa2380;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],
                     (uint *)puVar27[-3]);
        }
        if (local_a6 == 0) goto LAB_000a20dc;
LAB_000a20bc:
        if ((*local_b0)->options_ == (General_options *)0x0) {
          puVar27[-2] = local_8c + -0x64ebf;
          puVar27[-3] = 0x5c;
          puVar27[-4] = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
          puVar27[-5] = 0xa292e;
          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);
        }
        if (((*local_b0)->options_->gc_sections_).value != false) {
          src_id_1.first = (Relobj *)object;
          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
          src_id_1.second = data_shndx;
          dst_id.first = (Relobj *)local_94;
          dst_id.second = (uint)local_88;
          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                   _M_parent;
          p_Var21 = &p_Var1->_M_header;
          if (p_Var7 == (_Base_ptr)0x0) {
LAB_000a24e0:
            puVar27[-4] = &local_64;
            local_64 = &src_id_1;
            puVar27[-5] = 0xa24f8;
            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<>_>
                      ((_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>_>_>_>_>_>
                        *)puVar27[-4],(_Base_ptr)puVar27[-3],
                       (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-2],
                       (tuple<> *)puVar27[-1],(piecewise_construct_t *)*puVar27);
            p_Var22 = local_70;
          }
          else {
            do {
              while ((p_Var22 = (_Rb_tree_header *)p_Var7,
                     object <= (Sized_relobj_file<32,_true> *)
                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&
                     ((object != (Sized_relobj_file<32,_true> *)
                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||
                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {
                p_Var7 = (p_Var22->_M_header)._M_left;
                p_Var21 = &p_Var22->_M_header;
                if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a24ca;
              }
              pp_Var2 = &(p_Var22->_M_header)._M_right;
              p_Var7 = *pp_Var2;
              p_Var22 = (_Rb_tree_header *)p_Var21;
            } while (*pp_Var2 != (_Base_ptr)0x0);
LAB_000a24ca:
            if (((p_Var1 == p_Var22) ||
                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||
               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&
                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;
          }
          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);
          puVar27[-3] = 1;
          puVar27[-4] = 0;
          puVar27[-5] = local_c4;
          puVar27[-6] = &dst_id;
          puVar27[-7] = __node_gen._M_h;
          puVar27[-8] = local_c0;
          puVar27[-9] = 0xa2521;
          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>_>_>_>
                    ();
          pTVar8 = (*local_b0)->target_;
          if (pTVar8 == (Target *)0x0) {
            puVar27[-3] = local_8c + -0x65082;
            puVar27[-4] = 0x73;
            puVar27[-5] = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            puVar27[-6] = 0xa296d;
            gold::do_gold_unreachable((char *)puVar27[-5],puVar27[-4],(char *)puVar27[-3]);
          }
          ppuVar29 = (undefined **)pTVar8->_vptr_Target[0x41];
          if (ppuVar29 != local_8c + -0x1510f0) {
            puVar27[-3] = local_98;
            puVar27[-4] = local_88;
            puVar27[-5] = local_94;
            puVar27[-6] = data_shndx;
            puVar27[-7] = object;
            puVar27[-8] = symtab;
            puVar27[-9] = pTVar8;
            puVar27[-10] = 0xa26c1;
            (*(code *)ppuVar29)();
          }
          pp_Var16 = local_ac;
          ppGVar26 = (General_options **)(puVar27 + -1);
          if (local_ac != (_func_int_varargs **)0x0) {
            local_88 = (Relobj *)&local_2c;
            pGVar9 = symtab->gc_;
            puVar27[-5] = local_ac;
            local_84 = (Icf *)&src_id;
            src_id.first = (Relobj *)&local_2c;
            puVar27[-6] = 0xa258d;
            sVar17 = strlen((char *)puVar27[-5]);
            pIVar12 = local_84;
            puVar27[-2] = 0;
            puVar27[-3] = (byte *)((int)pp_Var16 + sVar17);
            puVar27[-4] = pp_Var16;
            puVar27[-5] = local_84;
            puVar27[-6] = 0xa259f;
            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
            _M_construct<char_const*>();
            puVar27[-3] = pIVar12;
            puVar27[-4] = &pGVar9->cident_sections_;
            puVar27[-5] = &local_80;
            puVar27[-6] = 0xa25b0;
            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((_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>_>_>_>_>_>
                    *)puVar27[-5],
                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)puVar27[-4])
            ;
            puVar13 = local_80;
            if (src_id.first != local_88) {
              puVar27[-6] = src_id.first;
              puVar27[-7] = 0xa25d0;
              operator_delete((void *)puVar27[-6]);
            }
            pGVar9 = symtab->gc_;
            ppGVar26 = (General_options **)(puVar27 + -2);
            if ((_Rb_tree_header *)puVar13 !=
                &(pGVar9->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {
              p_Var1 = &(pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
              src_id.first = (Relobj *)object;
              src_id.second = data_shndx;
              p_Var7 = (pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                       _M_parent;
              p_Var21 = &p_Var1->_M_header;
              if (p_Var7 == (_Base_ptr)0x0) {
LAB_000a2640:
                puVar27[-6] = &local_60;
                local_60 = local_84;
                puVar27[-7] = 0xa2658;
                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<>_>
                          ((_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>_>_>_>_>_>
                            *)puVar27[-6],(_Base_ptr)puVar27[-5],
                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],
                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);
                p_Var22 = local_70;
              }
              else {
                do {
                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,
                         object <= (Sized_relobj_file<32,_true> *)
                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&
                         ((object != (Sized_relobj_file<32,_true> *)
                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||
                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {
                    p_Var7 = (p_Var22->_M_header)._M_left;
                    p_Var21 = &p_Var22->_M_header;
                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;
                  }
                  pp_Var2 = &(p_Var22->_M_header)._M_right;
                  p_Var7 = *pp_Var2;
                  p_Var22 = (_Rb_tree_header *)p_Var21;
                } while (*pp_Var2 != (_Base_ptr)0x0);
LAB_000a262a:
                if (((p_Var22 == p_Var1) ||
                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||
                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&
                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;
              }
              ppGVar26 = (General_options **)(puVar27 + -2);
              puVar27 = puVar27 + -2;
              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;
                  puVar10 = (undefined4 *)*puVar10) {
                *(undefined4 *)((int)puVar27 + -0xc) = 1;
                *(undefined4 *)((int)puVar27 + -0x10) = 0;
                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;
                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;
                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;
                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;
                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;
                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);
                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>_>_>_>
                          ();
                ppGVar26 = (General_options **)((int)puVar27 + -4);
                puVar27 = (undefined4 *)((int)puVar27 + -4);
              }
            }
          }
        }
      }
LAB_000a20dc:
      local_b4 = local_b4 + 1;
      prelocs = prelocs + 0xc;
      puVar27 = ppGVar26;
    } while (reloc_count != local_b4);
  }
  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 != local_c8) {
    *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;
    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa278a;
    operator_delete(*(void **)((int)ppGVar26 + -0x10));
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_000a1eb0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *param_5,
                 undefined4 param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10
                 ,uint param_11,int param_12)

{
  undefined4 *puVar1;
  code *pcVar2;
  uint **ppuVar3;
  int iVar4;
  size_t sVar5;
  uint uVar6;
  undefined1 *puVar7;
  int extraout_ECX;
  int iVar8;
  int iVar9;
  int iVar10;
  int extraout_ECX_00;
  int extraout_ECX_01;
  int extraout_ECX_02;
  byte bVar11;
  uint uVar12;
  uint *puVar13;
  int *piVar14;
  undefined1 *puVar15;
  int iVar16;
  byte *pbVar17;
  undefined **ppuVar18;
  byte *pbVar19;
  undefined4 unaff_EDI;
  byte *pbVar20;
  bool bVar21;
  bool bVar22;
  bool bVar23;
  byte bVar24;
  int iStack_d0;
  undefined1 auStack_cc [4];
  undefined1 *local_c8;
  int *local_c4;
  undefined1 *local_c0;
  int local_bc;
  int local_b8;
  int local_b4;
  int *local_b0;
  byte *local_ac;
  byte local_a6;
  char local_a5;
  int local_a4;
  int local_a0;
  int local_9c;
  int local_98;
  uint *local_94;
  uint local_90;
  undefined **local_8c;
  uint *local_88;
  uint **local_84;
  int local_80;
  undefined1 local_7c [12];
  int local_70;
  int local_6c;
  int local_68;
  uint **local_64;
  uint **local_60;
  uint *local_5c;
  uint *local_58;
  uint *local_54;
  uint *local_50;
  undefined1 *local_4c [2];
  undefined1 local_44 [16];
  uint *local_34;
  uint *local_30;
  uint local_2c;
  int local_28;
  
  bVar24 = 0;
  local_8c = &__DT_PLTGOT;
  local_b0 = &DAT_005ea7c8;
  iVar16 = *(int *)(DAT_005ea7c8 + 8);
  if (iVar16 == 0) {
    iStack_d0 = iVar16;
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(iVar16 + 0x5934) == 0) {
    local_c8 = local_44;
    iStack_d0 = 0;
    local_4c[0] = local_c8;
    FUN_00072b90(local_4c,"","");
    piVar14 = (int *)auStack_cc;
    iVar16 = extraout_ECX_00;
  }
  else {
    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);
    local_c8 = local_44;
    piVar14 = &iStack_d0;
    iVar16 = extraout_ECX;
  }
  puVar15 = local_4c[0];
  iVar4 = *local_b0;
  if (*(int *)(iVar4 + 8) == 0) {
    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;
    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;
    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;
    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;
    FUN_002446e0();
  }
  if (*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0) {
LAB_000a1f35:
    local_a5 = '\0';
    local_bc = 0;
    local_a4 = 0;
    local_b8 = 0;
    local_a0 = 0;
    local_9c = 0;
  }
  else {
    local_88 = &local_2c;
    puVar7 = (undefined1 *)0xffffffff;
    local_34 = local_88;
    if (local_4c[0] != (undefined1 *)0x0) {
      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];
      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;
      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));
      puVar7 = puVar15 + sVar5;
    }
    *(undefined4 *)((int)piVar14 + -4) = 0;
    *(undefined1 **)((int)piVar14 + -8) = puVar7;
    local_84 = &local_34;
    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;
    *(uint ***)((int)piVar14 + -0x10) = local_84;
                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */
    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;
    FUN_00072b90();
    iVar16 = 5;
    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);
    bVar21 = piVar14 == (int *)0x0;
    ppuVar18 = local_8c + -0x67293;
    puVar13 = local_34;
    do {
      if (iVar16 == 0) break;
      iVar16 = iVar16 + -1;
      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;
      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;
      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);
      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);
    } while (bVar21);
    bVar22 = false;
    bVar23 = (!bVar23 && !bVar21) == bVar23;
    if (!bVar23) {
      iVar16 = 0xf;
      pbVar19 = (byte *)((int)local_8c + -0x19ca46);
      puVar13 = local_34;
      do {
        if (iVar16 == 0) break;
        iVar16 = iVar16 + -1;
        bVar22 = *pbVar19 < (byte)*puVar13;
        bVar23 = *pbVar19 == (byte)*puVar13;
        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;
        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);
      } while (bVar23);
      if ((!bVar22 && !bVar23) != bVar22) {
        if (local_34 == local_88) {
          iVar4 = *local_b0;
        }
        else {
          *(uint **)((int)piVar14 + -0x10) = local_34;
          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;
          FUN_003ae080();
          iVar4 = *local_b0;
          iVar16 = extraout_ECX_02;
        }
        goto LAB_000a1f35;
      }
    }
    if (local_34 != local_88) {
      *(uint **)((int)piVar14 + -0x10) = local_34;
      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;
      FUN_003ae080();
    }
    *(uint ***)((int)piVar14 + -0xc) = local_84;
    local_34 = param_4;
    local_30 = param_5;
    local_84 = *(uint ***)(param_2 + 0x15c);
    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;
    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;
    local_9c = FUN_00074520();
    local_a0 = local_9c + 0xc;
    local_b8 = local_9c + 0x18;
    local_a4 = local_9c + 0x24;
    local_bc = local_9c + 0x30;
    iVar4 = *local_b0;
    local_a5 = '\x01';
    iVar16 = extraout_ECX_01;
  }
  if (*(int *)(iVar4 + 8) == 0) {
    *(int *)((int)piVar14 + -4) = iVar16;
    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;
    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;
    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;
    FUN_002446e0();
  }
  if (param_8 != 0) {
    local_ac = (byte *)0x0;
    local_c0 = local_7c;
    local_c4 = &local_68;
    local_b4 = 0;
    puVar15 = (undefined1 *)piVar14;
    do {
      uVar12 = param_7[1];
      uVar6 = param_7[2];
      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;
      piVar14 = (int *)puVar15;
      if (uVar12 < param_11) {
        if (param_12 == 0) {
          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;
          *(undefined4 *)(puVar15 + -0xc) = 0xea;
          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;
          FUN_002446e0();
        }
        iVar16 = uVar12 * 0x10 + param_12;
        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |
                                         *(ushort *)(iVar16 + 0xe) >> 8);
        if (local_88 < (uint *)0xff00) {
LAB_000a2144:
          uVar12 = *(uint *)(iVar16 + 4);
          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                            uVar12 << 0x18);
          local_98 = (int)puVar13 + local_90;
          if (local_a5 != '\0') {
            local_34 = param_4;
            local_30 = local_88;
            local_84 = &local_34;
            *(uint ***)(puVar15 + -0xc) = local_84;
            *(int *)(puVar15 + -0x10) = local_9c;
            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;
            FUN_00073b00();
            bVar11 = *(byte *)(iVar16 + 0xc);
            bVar23 = true;
joined_r0x000a200c:
            if ((bVar11 & 0xf) == 3) {
              *(uint ***)(puVar15 + -0xc) = local_84;
              *(int *)(puVar15 + -0x10) = local_a0;
              local_34 = (uint *)0xffffffff;
              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;
              FUN_00073ca0();
            }
            else {
              *(uint ***)(puVar15 + -0xc) = local_84;
              *(int *)(puVar15 + -0x10) = local_a0;
              local_34 = (uint *)0x0;
              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;
              FUN_00073ca0();
            }
            *(uint ***)(puVar15 + -0xc) = local_84;
            *(int *)(puVar15 + -0x10) = local_b8;
            local_2c = local_90;
            local_28 = (int)local_90 >> 0x1f;
            local_30 = (uint *)0x0;
            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;
            local_34 = puVar13;
            FUN_00073e70();
            local_30 = (uint *)0x0;
            uVar12 = *param_7;
            puVar1 = *(undefined4 **)(local_a4 + 4);
            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                               uVar12 << 0x18);
            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {
              *(uint ***)(puVar15 + -8) = local_84;
              *(undefined4 **)(puVar15 + -0xc) = puVar1;
              *(int *)(puVar15 + -0x10) = local_a4;
              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;
              FUN_00072a40();
            }
            else {
              *puVar1 = local_34;
              puVar1[1] = 0;
              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;
            }
            local_54 = (uint *)0x0;
            *(uint ***)(puVar15 + -0xc) = &local_54;
            *(int *)(puVar15 + -0x10) = local_bc;
            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;
            FUN_00074020();
            if (!bVar23) goto LAB_000a20dc;
          }
          if (param_5 != local_88) {
            local_94 = param_4;
            goto LAB_000a20bc;
          }
        }
        else {
          if (local_88 == (uint *)0xffff) {
            uVar6 = param_4[0xc];
            if (uVar6 == 0) {
              uVar6 = *param_4;
              *(uint **)(puVar15 + -0x10) = param_4;
              pcVar2 = *(code **)(uVar6 + 0x6c);
              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;
              uVar6 = (*pcVar2)();
              param_4[0xc] = uVar6;
            }
            *(uint *)(puVar15 + -8) = uVar12;
            *(uint **)(puVar15 + -0xc) = param_4;
            *(uint *)(puVar15 + -0x10) = uVar6;
            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;
            local_88 = (uint *)FUN_0028b7d0();
            goto LAB_000a2144;
          }
          uVar12 = *(uint *)(iVar16 + 4);
          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                            uVar12 << 0x18);
          local_98 = (int)puVar13 + local_90;
          if (local_a5 != '\0') {
            local_84 = &local_34;
            local_34 = (uint *)0x0;
            *(uint ***)(puVar15 + -0xc) = local_84;
            *(int *)(puVar15 + -0x10) = local_9c;
            local_30 = (uint *)0x0;
                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */
            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;
            FUN_00073b00();
            bVar11 = *(byte *)(iVar16 + 0xc);
            bVar23 = false;
            goto joined_r0x000a200c;
          }
        }
      }
      else {
        if (uVar12 < param_4[0x2c]) {
          local_5c = (uint *)0x0;
LAB_000a244f:
          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;
          *(undefined4 *)(puVar15 + -0xc) = 0x11c;
          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;
          FUN_002446e0();
        }
        uVar12 = uVar12 - param_4[0x2c];
        local_84 = (uint **)param_4[0x30];
        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {
          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;
          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;
          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;
          FUN_002446e0();
        }
        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);
        if (local_5c == (uint *)0x0) goto LAB_000a244f;
        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {
          *(uint **)(puVar15 + -0xc) = local_5c;
          *(int *)(puVar15 + -0x10) = param_2;
          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;
          local_5c = (uint *)FUN_0034cd90();
        }
        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;
        if (bVar23) {
          local_94 = (uint *)local_5c[2];
          bVar23 = (local_94[0xb] & 1) == 0;
          if (bVar23) {
            local_88 = (uint *)local_5c[3];
            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;
            local_a6 = bVar11 & 1;
            bVar23 = (bVar11 & 1) == 0;
          }
          else {
            local_a6 = 0;
            local_88 = (uint *)0x0;
            local_94 = (uint *)0x0;
          }
          puVar13 = (uint *)local_5c[0xc];
        }
        else {
          puVar13 = (uint *)local_5c[0xc];
          local_a6 = 0;
          local_88 = (uint *)0x0;
          local_94 = (uint *)0x0;
        }
        local_98 = (int)puVar13 + local_90;
        bVar21 = false;
        pbVar19 = (byte *)*local_5c;
        iVar16 = 8;
        pbVar17 = (byte *)((int)local_8c + -0x19ca26);
        pbVar20 = pbVar19;
        do {
          if (iVar16 == 0) break;
          iVar16 = iVar16 + -1;
          bVar21 = *pbVar17 < *pbVar20;
          bVar23 = *pbVar17 == *pbVar20;
          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;
        } while (bVar23);
        bVar22 = false;
        bVar23 = (!bVar21 && !bVar23) == bVar21;
        if (bVar23) {
          pbVar19 = pbVar19 + 8;
        }
        else {
          iVar16 = 7;
          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);
          pbVar20 = pbVar19;
          do {
            if (iVar16 == 0) break;
            iVar16 = iVar16 + -1;
            bVar22 = *pbVar17 < *pbVar20;
            bVar23 = *pbVar17 == *pbVar20;
            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;
          } while (bVar23);
          pbVar19 = pbVar19 + 7;
          if ((!bVar22 && !bVar23) != bVar22) {
            pbVar19 = local_ac;
          }
        }
        local_ac = pbVar19;
        if (local_a5 != '\0') {
          if (local_a6 == 0) {
            local_34 = (uint *)0x0;
            local_30 = (uint *)0x0;
          }
          else {
            local_34 = local_94;
            local_30 = local_88;
          }
          local_84 = &local_34;
          *(uint ***)(puVar15 + -0xc) = local_84;
          *(int *)(puVar15 + -0x10) = local_9c;
          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;
          FUN_00073b00();
          puVar1 = *(undefined4 **)(local_a0 + 4);
          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {
            *(uint ***)(puVar15 + -8) = &local_5c;
            *(undefined4 **)(puVar15 + -0xc) = puVar1;
            *(int *)(puVar15 + -0x10) = local_a0;
            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;
            FUN_000726c0();
          }
          else {
            *puVar1 = local_5c;
            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;
          }
          *(uint ***)(puVar15 + -0xc) = local_84;
          *(int *)(puVar15 + -0x10) = local_b8;
          local_2c = local_90;
          local_28 = (int)local_90 >> 0x1f;
          local_30 = (uint *)0x0;
          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;
          local_34 = puVar13;
          FUN_00073e70();
          local_30 = (uint *)0x0;
          uVar12 = *param_7;
          puVar1 = *(undefined4 **)(local_a4 + 4);
          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                             uVar12 << 0x18);
          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {
            *(uint ***)(puVar15 + -8) = local_84;
            *(undefined4 **)(puVar15 + -0xc) = puVar1;
            *(int *)(puVar15 + -0x10) = local_a4;
            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;
            FUN_00072a40();
          }
          else {
            *puVar1 = local_34;
            puVar1[1] = 0;
            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;
          }
          local_54 = (uint *)0x0;
          *(uint ***)(puVar15 + -0xc) = &local_54;
          *(int *)(puVar15 + -0x10) = local_bc;
          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;
          FUN_00074020();
        }
        if (local_a6 == 0) goto LAB_000a20dc;
LAB_000a20bc:
        if (*(int *)(*local_b0 + 8) == 0) {
          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;
          *(undefined4 *)(puVar15 + -0xc) = 0x5c;
          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;
          FUN_002446e0();
        }
        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {
          local_5c = param_4;
          iVar16 = *(int *)(param_2 + 0x158) + 0x14;
          local_58 = param_5;
          local_54 = local_94;
          local_50 = local_88;
          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);
          iVar8 = iVar16;
          if (iVar4 == 0) {
LAB_000a24e0:
            local_64 = &local_5c;
            *(uint ****)(puVar15 + -0x10) = &local_64;
            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;
            FUN_00097a00();
            iVar9 = local_70;
          }
          else {
            do {
              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&
                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))
                     ))) {
                iVar4 = *(int *)(iVar9 + 8);
                iVar8 = iVar9;
                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;
              }
              piVar14 = (int *)(iVar9 + 0xc);
              iVar4 = *piVar14;
              iVar9 = iVar8;
            } while (*piVar14 != 0);
LAB_000a24ca:
            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||
               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))
            goto LAB_000a24e0;
          }
          local_68 = iVar9 + 0x18;
          *(undefined4 *)(puVar15 + -0xc) = 1;
          *(undefined4 *)(puVar15 + -0x10) = 0;
          *(int **)(puVar15 + -0x14) = local_c4;
          *(uint ***)(puVar15 + -0x18) = &local_54;
          *(int *)(puVar15 + -0x1c) = local_68;
          *(undefined1 **)(puVar15 + -0x20) = local_c0;
          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;
          FUN_00074340();
          piVar14 = *(int **)(*local_b0 + 0xc);
          if (piVar14 == (int *)0x0) {
            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;
            *(undefined4 *)(puVar15 + -0x10) = 0x73;
            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;
            FUN_002446e0();
          }
          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);
          if (ppuVar18 != local_8c + -0x1510f0) {
            *(int *)(puVar15 + -0xc) = local_98;
            *(uint **)(puVar15 + -0x10) = local_88;
            *(uint **)(puVar15 + -0x14) = local_94;
            *(uint **)(puVar15 + -0x18) = param_5;
            *(uint **)(puVar15 + -0x1c) = param_4;
            *(int *)(puVar15 + -0x20) = param_2;
            *(int **)(puVar15 + -0x24) = piVar14;
            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;
            (*(code *)ppuVar18)();
          }
          pbVar19 = local_ac;
          piVar14 = (int *)(puVar15 + -4);
          if (local_ac != (byte *)0x0) {
            local_88 = &local_2c;
            local_84 = &local_34;
            iVar16 = *(int *)(param_2 + 0x158);
            *(byte **)(puVar15 + -0x14) = local_ac;
            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;
            local_34 = local_88;
            sVar5 = strlen(*(char **)(puVar15 + -0x14));
            ppuVar3 = local_84;
            *(undefined4 *)(puVar15 + -8) = 0;
            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;
            *(byte **)(puVar15 + -0x10) = pbVar19;
            *(uint ***)(puVar15 + -0x14) = local_84;
            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;
            FUN_00072b90();
            *(uint ***)(puVar15 + -0xc) = ppuVar3;
            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;
            *(int **)(puVar15 + -0x14) = &local_80;
            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;
            FUN_00094bd0();
            iVar16 = local_80;
            if (local_34 != local_88) {
              *(uint **)(puVar15 + -0x18) = local_34;
              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;
              FUN_003ae080();
            }
            iVar4 = *(int *)(param_2 + 0x158);
            piVar14 = (int *)(puVar15 + -8);
            if (iVar16 != iVar4 + 0x48) {
              local_34 = param_4;
              local_30 = param_5;
              iVar8 = *(int *)(iVar4 + 0x18);
              iVar9 = iVar4 + 0x14;
              if (*(int *)(iVar4 + 0x18) == 0) {
LAB_000a2640:
                *(uint ****)(puVar15 + -0x18) = &local_60;
                local_60 = local_84;
                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;
                FUN_00097a00();
                iVar10 = local_70;
              }
              else {
                do {
                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&
                         ((param_4 != *(uint **)(iVar10 + 0x10) ||
                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {
                    iVar8 = *(int *)(iVar10 + 8);
                    iVar9 = iVar10;
                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;
                  }
                  piVar14 = (int *)(iVar10 + 0xc);
                  iVar8 = *piVar14;
                  iVar10 = iVar9;
                } while (*piVar14 != 0);
LAB_000a262a:
                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||
                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))
                   ) goto LAB_000a2640;
              }
              piVar14 = (int *)(puVar15 + -8);
              puVar15 = puVar15 + -8;
              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;
                  puVar1 = (undefined4 *)*puVar1) {
                *(undefined4 *)(puVar15 + -0xc) = 1;
                *(undefined4 *)(puVar15 + -0x10) = 0;
                *(int **)(puVar15 + -0x14) = &local_6c;
                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;
                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;
                *(undefined1 **)(puVar15 + -0x20) = local_c0;
                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;
                local_6c = iVar10 + 0x18;
                FUN_00074340();
                piVar14 = (int *)(puVar15 + -4);
                puVar15 = puVar15 + -4;
              }
            }
          }
        }
      }
LAB_000a20dc:
      local_b4 = local_b4 + 1;
      param_7 = param_7 + 3;
      puVar15 = (undefined1 *)piVar14;
    } while (param_8 != local_b4);
  }
  if (local_4c[0] != local_c8) {
    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];
    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;
    FUN_003ae080();
  }
  return;
}


CALL 0x00074f02
ADD EAX,0x54814b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xbc
MOV dword ptr [EBP + 0xffffff78],EAX
LEA EAX,[EAX + 0x7c8]
MOV dword ptr [EBP + 0xffffff54],EAX
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000a29a5
MOV EAX,dword ptr [EAX + 0x5934]
LEA EDX,[EBP + -0x48]
TEST EAX,EAX
JZ 0x000a2798
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0x4
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
PUSH EDX
CALL dword ptr [EAX + 0x40]
LEA EAX,[EBP + -0x40]
MOV dword ptr [EBP + 0xffffff3c],EAX
ADD ESP,0xc
MOV EAX,dword ptr [EBP + 0xffffff54]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x8]
TEST EDX,EDX
JZ 0x000a296d
MOV ESI,dword ptr [EDX + 0x5934]
TEST ESI,ESI
JNZ 0x000a27c8
MOV byte ptr [EBP + 0xffffff5f],0x0
MOV dword ptr [EBP + 0xffffff48],0x0
MOV dword ptr [EBP + 0xffffff60],0x0
MOV dword ptr [EBP + 0xffffff4c],0x0
MOV dword ptr [EBP + 0xffffff64],0x0
MOV dword ptr [EBP + 0xffffff68],0x0
MOV EBX,dword ptr [EAX + 0x8]
TEST EBX,EBX
JZ 0x000a2989
MOV EDX,dword ptr [EBP + 0x24]
TEST EDX,EDX
JZ 0x000a2770
MOV dword ptr [EBP + 0xffffff58],0x0
LEA EAX,[EBP + -0x78]
MOV dword ptr [EBP + 0xffffff44],EAX
LEA EAX,[EBP + -0x64]
MOV dword ptr [EBP + 0xffffff50],0x0
MOV dword ptr [EBP + 0xffffff40],EAX
JMP 0x000a20f6
CMP EAX,0xffff
JZ 0x000a21c0
MOV EBX,dword ptr [ESI + 0x4]
MOV EAX,dword ptr [EBP + 0xffffff74]
BSWAP EBX
ADD EAX,EBX
CMP byte ptr [EBP + 0xffffff5f],0x0
MOV dword ptr [EBP + 0xffffff6c],EAX
JZ 0x000a20dc
SUB ESP,0x8
LEA EAX,[EBP + -0x30]
MOV dword ptr [EBP + -0x30],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff68]
MOV dword ptr [EBP + -0x2c],0x0
MOV dword ptr [EBP + -0x80],EAX
CALL 0x00073b00
MOVZX EAX,byte ptr [ESI + 0xc]
ADD ESP,0x10
XOR EDI,EDI
AND EAX,0xf
CMP AL,0x3
JZ 0x000a219f
SUB ESP,0x8
PUSH dword ptr [EBP + -0x80]
PUSH dword ptr [EBP + 0xffffff64]
MOV dword ptr [EBP + -0x30],0x0
CALL 0x00073ca0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff74]
MOV dword ptr [EBP + -0x30],EBX
SUB ESP,0x8
PUSH dword ptr [EBP + -0x80]
PUSH dword ptr [EBP + 0xffffff4c]
MOV dword ptr [EBP + -0x28],EAX
SAR EAX,0x1f
MOV dword ptr [EBP + -0x2c],0x0
MOV dword ptr [EBP + -0x24],EAX
CALL 0x00073e70
MOV EAX,dword ptr [EBP + 0x20]
MOV ESI,dword ptr [EBP + 0xffffff60]
XOR EDX,EDX
ADD ESP,0x10
MOV dword ptr [EBP + -0x2c],EDX
MOV EAX,dword ptr [EAX]
MOV ECX,dword ptr [ESI + 0x4]
BSWAP EAX
MOV dword ptr [EBP + -0x30],EAX
CMP ECX,dword ptr [ESI + 0x8]
JZ 0x000a2710
MOV dword ptr [ECX],EAX
ADD ECX,0x8
MOV dword ptr [ECX + -0x4],EDX
MOV dword ptr [ESI + 0x4],ECX
SUB ESP,0x8
LEA EAX,[EBP + -0x50]
MOV dword ptr [EBP + -0x50],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff48]
CALL 0x00074020
MOV EAX,EDI
ADD ESP,0x10
TEST AL,AL
JZ 0x000a20dc
MOV EAX,dword ptr [EBP + 0xffffff7c]
CMP dword ptr [EBP + 0x18],EAX
JZ 0x000a20dc
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + 0xffffff70],EAX
MOV EAX,dword ptr [EBP + 0xffffff54]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000a2910
CMP byte ptr [EAX + 0x18b1],0x0
JNZ 0x000a2470
ADD dword ptr [EBP + 0xffffff50],0x1
MOV EAX,dword ptr [EBP + 0xffffff50]
ADD dword ptr [EBP + 0x20],0xc
CMP dword ptr [EBP + 0x24],EAX
JZ 0x000a2770
MOV EAX,dword ptr [EBP + 0x20]
MOV EBX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX + 0x8]
BSWAP EBX
BSWAP EAX
SHR EBX,0x8
MOV dword ptr [EBP + 0xffffff74],EAX
CMP dword ptr [EBP + 0x30],EBX
JBE 0x000a21f0
MOV EAX,dword ptr [EBP + 0x34]
TEST EAX,EAX
JZ 0x000a28e8
MOV ESI,EBX
SHL ESI,0x4
ADD ESI,dword ptr [EBP + 0x34]
MOVZX EAX,word ptr [ESI + 0xe]
ROL AX,0x8
MOVZX EAX,AX
MOV dword ptr [EBP + 0xffffff7c],EAX
CMP EAX,0xfeff
JA 0x000a1fb0
MOV EBX,dword ptr [ESI + 0x4]
MOV EAX,dword ptr [EBP + 0xffffff74]
BSWAP EBX
ADD EAX,EBX
CMP byte ptr [EBP + 0xffffff5f],0x0
MOV dword ptr [EBP + 0xffffff6c],EAX
JZ 0x000a20a8
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0x8
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV dword ptr [EBP + -0x2c],EAX
LEA EAX,[EBP + -0x30]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff68]
MOV dword ptr [EBP + -0x80],EAX
CALL 0x00073b00
MOVZX EAX,byte ptr [ESI + 0xc]
ADD ESP,0x10
MOV EDI,0x1
AND EAX,0xf
CMP AL,0x3
JNZ 0x000a2012
SUB ESP,0x8
PUSH dword ptr [EBP + -0x80]
PUSH dword ptr [EBP + 0xffffff64]
MOV dword ptr [EBP + -0x30],0xffffffff
CALL 0x00073ca0
JMP 0x000a202a
MOV EAX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX + 0x30]
TEST EAX,EAX
JZ 0x000a26d0
SUB ESP,0x4
PUSH EBX
MOV EBX,dword ptr [EBP + 0xffffff78]
PUSH dword ptr [EBP + 0x14]
PUSH EAX
CALL 0x0028b7d0
MOV dword ptr [EBP + 0xffffff7c],EAX
ADD ESP,0x10
JMP 0x000a2144
MOV EAX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX + 0xb0]
CMP EBX,EAX
JC 0x000a2448
SUB EBX,EAX
MOV EAX,dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EAX + 0xbc]
MOV EAX,dword ptr [EAX + 0xc0]
MOV dword ptr [EBP + -0x80],EAX
SUB EAX,EDX
SAR EAX,0x2
CMP EBX,EAX
JNC 0x000a292e
MOV EAX,dword ptr [EDX + EBX*0x4]
MOV dword ptr [EBP + -0x58],EAX
TEST EAX,EAX
JZ 0x000a244f
TEST byte ptr [EAX + 0x2a],0x10
JNZ 0x000a2428
TEST byte ptr [EAX + 0x2a],0x7
JNZ 0x000a23f0
MOV ESI,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + 0xffffff70],ESI
TEST byte ptr [ESI + 0x2c],0x1
JNZ 0x000a23d0
MOVZX EDX,byte ptr [EAX + 0x2b]
MOV EDI,dword ptr [EAX + 0xc]
SHR DL,0x5
MOV dword ptr [EBP + 0xffffff7c],EDI
AND EDX,0x1
MOV byte ptr [EBP + 0xffffff5e],DL
MOV EBX,dword ptr [EAX + 0x30]
MOV ESI,dword ptr [EBP + 0xffffff74]
LEA ECX,[ESI + EBX*0x1]
MOV dword ptr [EBP + 0xffffff6c],ECX
MOV EDI,dword ptr [EBP + 0xffffff78]
MOV EAX,dword ptr [EAX]
MOV ECX,0x8
LEA ESI,[EDI + 0xffe635da]
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x000a2398
ADD EAX,0x8
MOV dword ptr [EBP + 0xffffff58],EAX
CMP byte ptr [EBP + 0xffffff5f],0x0
JZ 0x000a2383
CMP byte ptr [EBP + 0xffffff5e],0x0
JNZ 0x000a2750
MOV dword ptr [EBP + -0x30],0x0
MOV dword ptr [EBP + -0x2c],0x0
SUB ESP,0x8
LEA EAX,[EBP + -0x30]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff68]
MOV dword ptr [EBP + -0x80],EAX
CALL 0x00073b00
MOV EDI,dword ptr [EBP + 0xffffff64]
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x4]
CMP EAX,dword ptr [EDI + 0x8]
JZ 0x000a2730
MOV EDX,dword ptr [EBP + -0x58]
ADD EAX,0x4
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [EDI + 0x4],EAX
MOV EAX,dword ptr [EBP + 0xffffff74]
SUB ESP,0x8
PUSH dword ptr [EBP + -0x80]
PUSH dword ptr [EBP + 0xffffff4c]
MOV dword ptr [EBP + -0x28],EAX
SAR EAX,0x1f
MOV dword ptr [EBP + -0x30],EBX
MOV dword ptr [EBP + -0x2c],0x0
MOV dword ptr [EBP + -0x24],EAX
CALL 0x00073e70
MOV EAX,dword ptr [EBP + 0x20]
MOV EDI,dword ptr [EBP + 0xffffff60]
XOR EBX,EBX
ADD ESP,0x10
MOV dword ptr [EBP + -0x2c],EBX
MOV ECX,dword ptr [EAX]
MOV EAX,dword ptr [EDI + 0x4]
BSWAP ECX
MOV dword ptr [EBP + -0x30],ECX
CMP EAX,dword ptr [EDI + 0x8]
JZ 0x000a26f0
MOV dword ptr [EAX],ECX
ADD EAX,0x8
MOV dword ptr [EAX + -0x4],EBX
MOV dword ptr [EDI + 0x4],EAX
SUB ESP,0x8
LEA EAX,[EBP + -0x50]
MOV dword ptr [EBP + -0x50],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff48]
CALL 0x00074020
ADD ESP,0x10
CMP byte ptr [EBP + 0xffffff5e],0x0
JNZ 0x000a20bc
JMP 0x000a20dc
MOV ESI,dword ptr [EBP + 0xffffff78]
MOV EDI,EAX
MOV ECX,0x7
LEA ESI,[ESI + 0xffe635e3]
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
ADD EAX,0x7
TEST DL,DL
CMOVNZ EAX,dword ptr [EBP + 0xffffff58]
MOV dword ptr [EBP + 0xffffff58],EAX
JMP 0x000a22b0
MOV byte ptr [EBP + 0xffffff5e],0x0
MOV dword ptr [EBP + 0xffffff7c],0x0
MOV dword ptr [EBP + 0xffffff70],0x0
JMP 0x000a2270
MOV EBX,dword ptr [EAX + 0x30]
MOV ECX,dword ptr [EBP + 0xffffff74]
MOV byte ptr [EBP + 0xffffff5e],0x0
MOV dword ptr [EBP + 0xffffff7c],0x0
MOV dword ptr [EBP + 0xffffff70],0x0
LEA EDX,[ECX + EBX*0x1]
MOV dword ptr [EBP + 0xffffff6c],EDX
JMP 0x000a2282
SUB ESP,0x8
MOV EBX,dword ptr [EBP + 0xffffff78]
PUSH EAX
PUSH dword ptr [EBP + 0xc]
CALL 0x0034cd90
ADD ESP,0x10
MOV dword ptr [EBP + -0x58],EAX
JMP 0x000a223a
MOV dword ptr [EBP + -0x58],0x0
MOV EBX,dword ptr [EBP + 0xffffff78]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe6bb74]
PUSH EAX
LEA EAX,[EBX + 0xffe635ca]
PUSH 0x11c
PUSH EAX
CALL 0x002446e0
MOV EAX,dword ptr [EBP + 0xc]
MOV EDX,dword ptr [EAX + 0x158]
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + -0x58],EAX
MOV EAX,dword ptr [EBP + 0x18]
LEA EBX,[EDX + 0x14]
MOV ECX,EBX
MOV dword ptr [EBP + -0x54],EAX
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + -0x50],EAX
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV dword ptr [EBP + -0x4c],EAX
MOV EAX,dword ptr [EDX + 0x18]
TEST EAX,EAX
JNZ 0x000a24bb
JMP 0x000a24e0
JNZ 0x000a24b2
MOV ESI,dword ptr [EAX + 0x14]
CMP dword ptr [EBP + 0x18],ESI
JA 0x000a24c3
MOV ECX,EAX
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000a24ca
MOV EDI,dword ptr [EAX + 0x10]
CMP dword ptr [EBP + 0x14],EDI
JBE 0x000a24a8
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x000a24bb
CMP EBX,ECX
JZ 0x000a24e0
MOV EAX,dword ptr [ECX + 0x10]
CMP dword ptr [EBP + 0x14],EAX
JC 0x000a24e0
JNZ 0x000a24fe
MOV EAX,dword ptr [ECX + 0x14]
CMP dword ptr [EBP + 0x18],EAX
JNC 0x000a24fe
SUB ESP,0xc
LEA EBX,[EBP + -0x60]
LEA EAX,[EBP + -0x58]
ADD EDX,0x10
PUSH EBX
MOV dword ptr [EBP + -0x60],EAX
LEA EAX,[EBP + -0x6c]
CALL 0x00097a00
MOV ECX,dword ptr [EBP + -0x6c]
ADD ESP,0x10
SUB ESP,0x8
ADD ECX,0x18
LEA EAX,[EBP + -0x50]
PUSH 0x1
PUSH 0x0
PUSH dword ptr [EBP + 0xffffff40]
PUSH EAX
PUSH ECX
PUSH dword ptr [EBP + 0xffffff44]
MOV dword ptr [EBP + -0x64],ECX
CALL 0x00074340
MOV EAX,dword ptr [EBP + 0xffffff54]
ADD ESP,0x1c
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x000a294f
MOV EDX,dword ptr [EAX]
MOV EDI,dword ptr [EBP + 0xffffff78]
MOV EDX,dword ptr [EDX + 0x104]
LEA ECX,[EDI + 0xffabbc40]
CMP EDX,ECX
JNZ 0x000a26a0
MOV EAX,dword ptr [EBP + 0xffffff58]
TEST EAX,EAX
JZ 0x000a20dc
MOV EDX,dword ptr [EBP + 0xc]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff78]
LEA ECX,[EBP + -0x28]
LEA EDI,[EBP + -0x30]
MOV dword ptr [EBP + 0xffffff7c],ECX
MOV ESI,dword ptr [EDX + 0x158]
PUSH EAX
MOV dword ptr [EBP + -0x80],EDI
MOV EDI,EAX
MOV dword ptr [EBP + -0x30],ECX
CALL 0x00039330
ADD ESP,0x10
ADD EAX,EDI
PUSH 0x0
PUSH EAX
PUSH EDI
MOV EDI,dword ptr [EBP + -0x80]
PUSH EDI
CALL 0x00072b90
ADD ESP,0xc
LEA EAX,[EBP + -0x7c]
ADD ESI,0x44
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00094bd0
MOV ESI,dword ptr [EBP + -0x7c]
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0xc
CMP EAX,dword ptr [EBP + 0xffffff7c]
JZ 0x000a25d3
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff78]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xc]
MOV EDX,dword ptr [EAX + 0x158]
LEA EAX,[EDX + 0x48]
CMP ESI,EAX
JZ 0x000a20dc
MOV EAX,dword ptr [EBP + 0x14]
LEA EBX,[EDX + 0x14]
MOV ECX,EBX
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EDX + 0x18]
TEST EAX,EAX
JNZ 0x000a261b
JMP 0x000a2640
JNZ 0x000a2612
MOV EDI,dword ptr [EAX + 0x14]
CMP dword ptr [EBP + 0x18],EDI
JA 0x000a2623
MOV ECX,EAX
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000a262a
MOV EDI,dword ptr [EAX + 0x10]
CMP dword ptr [EBP + 0x14],EDI
JBE 0x000a2608
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x000a261b
CMP ECX,EBX
JZ 0x000a2640
MOV EAX,dword ptr [ECX + 0x10]
CMP dword ptr [EBP + 0x14],EAX
JC 0x000a2640
JNZ 0x000a265e
MOV EAX,dword ptr [ECX + 0x14]
CMP dword ptr [EBP + 0x18],EAX
JNC 0x000a265e
SUB ESP,0xc
LEA EBX,[EBP + -0x5c]
MOV EAX,dword ptr [EBP + -0x80]
ADD EDX,0x10
PUSH EBX
MOV dword ptr [EBP + -0x5c],EAX
LEA EAX,[EBP + -0x6c]
CALL 0x00097a00
MOV ECX,dword ptr [EBP + -0x6c]
ADD ESP,0x10
MOV EBX,dword ptr [ESI + 0x30]
LEA EDI,[EBP + -0x68]
LEA ESI,[ECX + 0x18]
TEST EBX,EBX
JZ 0x000a20dc
NOP
SUB ESP,0x8
LEA EAX,[EBX + 0x4]
MOV dword ptr [EBP + -0x68],ESI
PUSH 0x1
PUSH 0x0
PUSH EDI
PUSH EAX
PUSH ESI
PUSH dword ptr [EBP + 0xffffff44]
CALL 0x00074340
MOV EBX,dword ptr [EBX]
ADD ESP,0x1c
TEST EBX,EBX
JNZ 0x000a2670
JMP 0x000a20dc
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff6c]
PUSH dword ptr [EBP + 0xffffff7c]
PUSH dword ptr [EBP + 0xffffff70]
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0xc]
PUSH EAX
CALL EDX
ADD ESP,0x20
JMP 0x000a2553
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0xc
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EBP + 0x14]
CALL dword ptr [EAX + 0x6c]
MOV EDI,dword ptr [EBP + 0x14]
ADD ESP,0x10
MOV dword ptr [EDI + 0x30],EAX
JMP 0x000a21ce
SUB ESP,0x4
PUSH dword ptr [EBP + -0x80]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff60]
CALL 0x00072a40
ADD ESP,0x10
JMP 0x000a2367
SUB ESP,0x4
PUSH dword ptr [EBP + -0x80]
PUSH ECX
PUSH dword ptr [EBP + 0xffffff60]
CALL 0x00072a40
ADD ESP,0x10
JMP 0x000a2086
SUB ESP,0x4
LEA EDX,[EBP + -0x58]
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff64]
CALL 0x000726c0
ADD ESP,0x10
JMP 0x000a230e
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV dword ptr [EBP + -0x2c],EAX
JMP 0x000a22d8
MOV EAX,dword ptr [EBP + -0x48]
CMP EAX,dword ptr [EBP + 0xffffff3c]
JZ 0x000a278d
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff78]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBP + -0x40]
PUSH 0x0
MOV dword ptr [EBP + 0xffffff3c],EAX
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,dword ptr [EBP + 0xffffff78]
LEA EAX,[EAX + 0xffeb3b16]
PUSH EAX
PUSH EAX
PUSH EDX
CALL 0x00072b90
ADD ESP,0x10
JMP 0x000a1f14
MOV ESI,dword ptr [EBP + -0x48]
LEA EAX,[EBP + -0x28]
MOV dword ptr [EBP + 0xffffff7c],EAX
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,0xffffffff
TEST ESI,ESI
JZ 0x000a27f4
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff78]
PUSH ESI
CALL 0x00039330
ADD ESP,0x10
ADD EAX,ESI
PUSH 0x0
PUSH EAX
LEA EAX,[EBP + -0x30]
PUSH ESI
PUSH EAX
MOV dword ptr [EBP + -0x80],EAX
CALL 0x00072b90
MOV EDX,dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EBP + 0xffffff78]
MOV ECX,0x5
ADD ESP,0x10
LEA ESI,[EBX + 0xffe635b4]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x000a2840
MOV ECX,0xf
LEA ESI,[EBX + 0xffe635ba]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000a28b8
CMP EDX,dword ptr [EBP + 0xffffff7c]
JNZ 0x000a29ce
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0x8
PUSH dword ptr [EBP + -0x80]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EAX + 0x15c]
MOV dword ptr [EBP + -0x80],EAX
ADD EAX,0x54
PUSH EAX
CALL 0x00074520
LEA ESI,[EAX + 0xc]
LEA EBX,[EAX + 0x18]
MOV dword ptr [EBP + 0xffffff68],EAX
ADD ESP,0x10
LEA EDX,[EAX + 0x24]
ADD EAX,0x30
MOV dword ptr [EBP + 0xffffff64],ESI
MOV dword ptr [EBP + 0xffffff48],EAX
MOV EAX,dword ptr [EBP + 0xffffff54]
MOV dword ptr [EBP + 0xffffff4c],EBX
MOV dword ptr [EBP + 0xffffff60],EDX
MOV EAX,dword ptr [EAX]
MOV byte ptr [EBP + 0xffffff5f],0x1
JMP 0x000a1f6e
CMP EDX,dword ptr [EBP + 0xffffff7c]
JZ 0x000a29c1
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff78]
PUSH EDX
CALL 0x003ae080
MOV EAX,dword ptr [EBP + 0xffffff54]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
JMP 0x000a1f35
MOV EBX,dword ptr [EBP + 0xffffff78]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe6bb74]
PUSH EAX
LEA EAX,[EBX + 0xffe635ca]
PUSH 0xea
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff78]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe6c504]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff78]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe6bda8]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x8ad
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff78]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe6bdf8]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x73
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff78]
PUSH EDI
LEA EAX,[EBX + 0xffe6c504]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff78]
PUSH ECX
LEA EAX,[EBX + 0xffe6c504]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff78]
PUSH EAX
LEA EAX,[EBX + 0xffe6c504]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EAX,dword ptr [EBP + 0xffffff54]
MOV EAX,dword ptr [EAX]
JMP 0x000a1f35
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff78]
PUSH EDX
CALL 0x003ae080
ADD ESP,0x10
JMP 0x000a284c
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_000a1eb0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *param_5,\n                 undefined4 param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10\n                 ,uint param_11,int param_12)\n\n{\n  undefined4 *puVar1;\n  code *pcVar2;\n  uint **ppuVar3;\n  int iVar4;\n  size_t sVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  byte bVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  undefined1 *puVar15;\n  int iVar16;\n  byte *pbVar17;\n  undefined **ppuVar18;\n  byte *pbVar19;\n  undefined4 unaff_EDI;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  int iStack_d0;\n  undefined1 auStack_cc [4];\n  undefined1 *local_c8;\n  int *local_c4;\n  undefined1 *local_c0;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int *local_b0;\n  byte *local_ac;\n  byte local_a6;\n  char local_a5;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  uint *local_94;\n  uint local_90;\n  undefined **local_8c;\n  uint *local_88;\n  uint **local_84;\n  int local_80;\n  undefined1 local_7c [12];\n  int local_70;\n  int local_6c;\n  int local_68;\n  uint **local_64;\n  uint **local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar24 = 0;\n  local_8c = &__DT_PLTGOT;\n  local_b0 = &DAT_005ea7c8;\n  iVar16 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar16 == 0) {\n    iStack_d0 = iVar16;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar16 + 0x5934) == 0) {\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }\n  puVar15 = local_4c[0];\n  iVar4 = *local_b0;\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0) {\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }\n  else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }\n  if (param_8 != 0) {\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }\n  if (local_4c[0] != local_c8) {\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_000a1eb0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *param_5,\n                 undefined4 param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10\n                 ,uint param_11,int param_12)\n\n{\n  undefined4 *puVar1;\n  code *pcVar2;\n  uint **ppuVar3;\n  int iVar4;\n  size_t sVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  byte bVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  undefined1 *puVar15;\n  int iVar16;\n  byte *pbVar17;\n  undefined **ppuVar18;\n  byte *pbVar19;\n  undefined4 unaff_EDI;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  int iStack_d0;\n  undefined1 auStack_cc [4];\n  undefined1 *local_c8;\n  int *local_c4;\n  undefined1 *local_c0;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int *local_b0;\n  byte *local_ac;\n  byte local_a6;\n  char local_a5;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  uint *local_94;\n  uint local_90;\n  undefined **local_8c;\n  uint *local_88;\n  uint **local_84;\n  int local_80;\n  undefined1 local_7c [12];\n  int local_70;\n  int local_6c;\n  int local_68;\n  uint **local_64;\n  uint **local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar24 = 0;\n  local_8c = &__DT_PLTGOT;\n  local_b0 = &DAT_005ea7c8;\n  iVar16 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar16 == 0) {\n    iStack_d0 = iVar16;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar16 + 0x5934) == 0) {\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }\n  puVar15 = local_4c[0];\n  iVar4 = *local_b0;\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0) {\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }\n  else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }\n  if (param_8 != 0) {\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }\n  if (local_4c[0] != local_c8) {\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000a1eb0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *param_5,\n                 undefined4 param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10\n                 ,uint param_11,int param_12)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *param_5,\n                 undefined4 param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10\n                 ,uint param_11,int param_12)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "uint *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "undefined4 param_10" type_identifier identifier) , (parameter_declaration "uint param_11" type_identifier identifier) , (parameter_declaration "int param_12" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  code *pcVar2;\n  uint **ppuVar3;\n  int iVar4;\n  size_t sVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  byte bVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  undefined1 *puVar15;\n  int iVar16;\n  byte *pbVar17;\n  undefined **ppuVar18;\n  byte *pbVar19;\n  undefined4 unaff_EDI;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  int iStack_d0;\n  undefined1 auStack_cc [4];\n  undefined1 *local_c8;\n  int *local_c4;\n  undefined1 *local_c0;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int *local_b0;\n  byte *local_ac;\n  byte local_a6;\n  char local_a5;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  uint *local_94;\n  uint local_90;\n  undefined **local_8c;\n  uint *local_88;\n  uint **local_84;\n  int local_80;\n  undefined1 local_7c [12];\n  int local_70;\n  int local_6c;\n  int local_68;\n  uint **local_64;\n  uint **local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar24 = 0;\n  local_8c = &__DT_PLTGOT;\n  local_b0 = &DAT_005ea7c8;\n  iVar16 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar16 == 0) {\n    iStack_d0 = iVar16;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar16 + 0x5934) == 0) {\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }\n  puVar15 = local_4c[0];\n  iVar4 = *local_b0;\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0) {\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }\n  else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }\n  if (param_8 != 0) {\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }\n  if (local_4c[0] != local_c8) {\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint **ppuVar3;" type_identifier (pointer_declarator "**ppuVar3" * (pointer_declarator "*ppuVar3" * identifier)) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int extraout_ECX_00;" primitive_type identifier ;) (declaration "int extraout_ECX_01;" primitive_type identifier ;) (declaration "int extraout_ECX_02;" primitive_type identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "undefined **ppuVar18;" type_identifier (pointer_declarator "**ppuVar18" * (pointer_declarator "*ppuVar18" * identifier)) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "undefined4 unaff_EDI;" type_identifier identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "byte bVar24;" type_identifier identifier ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "undefined1 auStack_cc [4];" type_identifier (array_declarator "auStack_cc [4]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "int *local_c4;" primitive_type (pointer_declarator "*local_c4" * identifier) ;) (declaration "undefined1 *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "int local_b8;" primitive_type identifier ;) (declaration "int local_b4;" primitive_type identifier ;) (declaration "int *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "byte *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "byte local_a6;" type_identifier identifier ;) (declaration "char local_a5;" primitive_type identifier ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "uint *local_94;" type_identifier (pointer_declarator "*local_94" * identifier) ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "undefined **local_8c;" type_identifier (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)) ;) (declaration "uint *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "uint **local_84;" type_identifier (pointer_declarator "**local_84" * (pointer_declarator "*local_84" * identifier)) ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "undefined1 local_7c [12];" type_identifier (array_declarator "local_7c [12]" identifier [ number_literal ]) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "uint **local_64;" type_identifier (pointer_declarator "**local_64" * (pointer_declarator "*local_64" * identifier)) ;) (declaration "uint **local_60;" type_identifier (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)) ;) (declaration "uint *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "uint *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "uint *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "uint *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "undefined1 *local_4c [2];" type_identifier (pointer_declarator "*local_4c [2]" * (array_declarator "local_4c [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "uint *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "local_8c = &__DT_PLTGOT;" (assignment_expression "local_8c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_b0 = &DAT_005ea7c8;" (assignment_expression "local_b0 = &DAT_005ea7c8" identifier = (pointer_expression "&DAT_005ea7c8" & identifier)) ;) (expression_statement "iVar16 = *(int *)(DAT_005ea7c8 + 8);" (assignment_expression "iVar16 = *(int *)(DAT_005ea7c8 + 8)" identifier = (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar16 == 0) {\n    iStack_d0 = iVar16;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    iStack_d0 = iVar16;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "iStack_d0 = iVar16;" (assignment_expression "iStack_d0 = iVar16" identifier = identifier) ;) comment (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_002446e0("../../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 *)(iVar16 + 0x5934) == 0) {\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }" if (parenthesized_expression "(*(int *)(iVar16 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar16 + 0x5934) == 0" (pointer_expression "*(int *)(iVar16 + 0x5934)" * (cast_expression "(int *)(iVar16 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x5934)" ( (binary_expression "iVar16 + 0x5934" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }" { (expression_statement "local_c8 = local_44;" (assignment_expression "local_c8 = local_44" identifier = identifier) ;) (expression_statement "iStack_d0 = 0;" (assignment_expression "iStack_d0 = 0" identifier = number_literal) ;) (expression_statement "local_4c[0] = local_c8;" (assignment_expression "local_4c[0] = local_c8" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00072b90(local_4c,"","");" (call_expression "FUN_00072b90(local_4c,"","")" identifier (argument_list "(local_4c,"","")" ( identifier , (string_literal """" " ") , (string_literal """" " ") ))) ;) (expression_statement "piVar14 = (int *)auStack_cc;" (assignment_expression "piVar14 = (int *)auStack_cc" identifier = (cast_expression "(int *)auStack_cc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar16 = extraout_ECX_00;" (assignment_expression "iVar16 = extraout_ECX_00" identifier = identifier) ;) }) (else_clause "else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }" else (compound_statement "{\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }" { (expression_statement "(**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);" (call_expression "(**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5)" (parenthesized_expression "(**(code **)(*param_4 + 0x40))" ( (pointer_expression "**(code **)(*param_4 + 0x40)" * (pointer_expression "*(code **)(*param_4 + 0x40)" * (cast_expression "(code **)(*param_4 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_4 + 0x40)" ( (binary_expression "*param_4 + 0x40" (pointer_expression "*param_4" * identifier) + number_literal) ))))) )) (argument_list "(local_4c,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_c8 = local_44;" (assignment_expression "local_c8 = local_44" identifier = identifier) ;) (expression_statement "piVar14 = &iStack_d0;" (assignment_expression "piVar14 = &iStack_d0" identifier = (pointer_expression "&iStack_d0" & identifier)) ;) (expression_statement "iVar16 = extraout_ECX;" (assignment_expression "iVar16 = extraout_ECX" identifier = identifier) ;) }))) (expression_statement "puVar15 = local_4c[0];" (assignment_expression "puVar15 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = *local_b0;" (assignment_expression "iVar4 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (if_statement "if (*(int *)(iVar4 + 8) == 0) {\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(*(int *)(iVar4 + 8) == 0)" ( (binary_expression "*(int *)(iVar4 + 8) == 0" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }" { (expression_statement "*(undefined4 *)((int)piVar14 + -4) = unaff_EDI;" (assignment_expression "*(undefined4 *)((int)piVar14 + -4) = unaff_EDI" (pointer_expression "*(undefined4 *)((int)piVar14 + -4)" * (cast_expression "(undefined4 *)((int)piVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -4)" ( (binary_expression "(int)piVar14 + -4" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;" (assignment_expression "*(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf" (pointer_expression "*(undefined ***)((int)piVar14 + -8)" * (cast_expression "(undefined ***)((int)piVar14 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar14 + -8)" ( (binary_expression "(int)piVar14 + -8" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_8c + -0x64ebf" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar14 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar14 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0xc)" ( (binary_expression "(int)piVar14 + -0xc" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)((int)piVar14 + -0x10)" * (cast_expression "(int *)((int)piVar14 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2989" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0) {\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }\n  else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(iVar4 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar4 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar4 + 8) + 0x5934" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }" { (labeled_statement "LAB_000a1f35:\n    local_a5 = '\0';" statement_identifier : (expression_statement "local_a5 = '\0';" (assignment_expression "local_a5 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }" else (compound_statement "{\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }" { (expression_statement "local_88 = &local_2c;" (assignment_expression "local_88 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "puVar7 = (undefined1 *)0xffffffff;" (assignment_expression "puVar7 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = local_88;" (assignment_expression "local_34 = local_88" identifier = identifier) ;) (if_statement "if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }" if (parenthesized_expression "(local_4c[0] != (undefined1 *)0x0)" ( (binary_expression "local_4c[0] != (undefined1 *)0x0" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }" { (expression_statement "*(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];" (assignment_expression "*(undefined1 **)((int)piVar14 + -0x10) = local_4c[0]" (pointer_expression "*(undefined1 **)((int)piVar14 + -0x10)" * (cast_expression "(undefined1 **)((int)piVar14 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar5 = strlen(*(char **)((int)piVar14 + -0x10));" (assignment_expression "sVar5 = strlen(*(char **)((int)piVar14 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)piVar14 + -0x10))" identifier (argument_list "(*(char **)((int)piVar14 + -0x10))" ( (pointer_expression "*(char **)((int)piVar14 + -0x10)" * (cast_expression "(char **)((int)piVar14 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "puVar7 = puVar15 + sVar5;" (assignment_expression "puVar7 = puVar15 + sVar5" identifier = (binary_expression "puVar15 + sVar5" identifier + identifier)) ;) })) (expression_statement "*(undefined4 *)((int)piVar14 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)piVar14 + -4) = 0" (pointer_expression "*(undefined4 *)((int)piVar14 + -4)" * (cast_expression "(undefined4 *)((int)piVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -4)" ( (binary_expression "(int)piVar14 + -4" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)((int)piVar14 + -8) = puVar7;" (assignment_expression "*(undefined1 **)((int)piVar14 + -8) = puVar7" (pointer_expression "*(undefined1 **)((int)piVar14 + -8)" * (cast_expression "(undefined1 **)((int)piVar14 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -8)" ( (binary_expression "(int)piVar14 + -8" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(undefined1 **)((int)piVar14 + -0xc) = puVar15;" (assignment_expression "*(undefined1 **)((int)piVar14 + -0xc) = puVar15" (pointer_expression "*(undefined1 **)((int)piVar14 + -0xc)" * (cast_expression "(undefined1 **)((int)piVar14 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -0xc)" ( (binary_expression "(int)piVar14 + -0xc" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)((int)piVar14 + -0x10) = local_84;" (assignment_expression "*(uint ***)((int)piVar14 + -0x10) = local_84" (pointer_expression "*(uint ***)((int)piVar14 + -0x10)" * (cast_expression "(uint ***)((int)piVar14 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2804" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar16 = 5;" (assignment_expression "iVar16 = 5" identifier = number_literal) ;) (expression_statement "bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);" (assignment_expression "bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10)" identifier = (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)piVar14 + -0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar21 = piVar14 == (int *)0x0;" (assignment_expression "bVar21 = piVar14 == (int *)0x0" identifier = (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "ppuVar18 = local_8c + -0x67293;" (assignment_expression "ppuVar18 = local_8c + -0x67293" identifier = (binary_expression "local_8c + -0x67293" identifier + number_literal)) ;) (expression_statement "puVar13 = local_34;" (assignment_expression "puVar13 = local_34" identifier = identifier) ;) (do_statement "do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);" do (compound_statement "{\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;" (assignment_expression "bVar23 = *(byte *)ppuVar18 < (byte)*puVar13" identifier = (binary_expression "*(byte *)ppuVar18 < (byte)*puVar13" (pointer_expression "*(byte *)ppuVar18" * (cast_expression "(byte *)ppuVar18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*puVar13" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;" (assignment_expression "bVar21 = *(byte *)ppuVar18 == (byte)*puVar13" identifier = (binary_expression "*(byte *)ppuVar18 == (byte)*puVar13" (pointer_expression "*(byte *)ppuVar18" * (cast_expression "(byte *)ppuVar18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (binary_expression "(byte)*puVar13" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);" (assignment_expression "ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar18 + (uint)bVar24 * -2 + 1)" ( (binary_expression "(int)ppuVar18 + (uint)bVar24 * -2 + 1" (binary_expression "(int)ppuVar18 + (uint)bVar24 * -2" (cast_expression "(int)ppuVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);" (assignment_expression "puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar13 + (uint)bVar24 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + (uint)bVar24 * -2 + 1)" ( (binary_expression "(int)puVar13 + (uint)bVar24 * -2 + 1" (binary_expression "(int)puVar13 + (uint)bVar24 * -2" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar21)" ( identifier )) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar23 && !bVar21) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar21) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar21) == bVar23" (parenthesized_expression "(!bVar23 && !bVar21)" ( (binary_expression "!bVar23 && !bVar21" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar21" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }" { (expression_statement "iVar16 = 0xf;" (assignment_expression "iVar16 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)((int)local_8c + -0x19ca46);" (assignment_expression "pbVar19 = (byte *)((int)local_8c + -0x19ca46)" identifier = (cast_expression "(byte *)((int)local_8c + -0x19ca46)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + -0x19ca46)" ( (binary_expression "(int)local_8c + -0x19ca46" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar13 = local_34;" (assignment_expression "puVar13 = local_34" identifier = identifier) ;) (do_statement "do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);" do (compound_statement "{\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar19 < (byte)*puVar13;" (assignment_expression "bVar22 = *pbVar19 < (byte)*puVar13" identifier = (binary_expression "*pbVar19 < (byte)*puVar13" (pointer_expression "*pbVar19" * identifier) < (binary_expression "(byte)*puVar13" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar23 = *pbVar19 == (byte)*puVar13;" (assignment_expression "bVar23 = *pbVar19 == (byte)*puVar13" identifier = (binary_expression "*pbVar19 == (byte)*puVar13" (pointer_expression "*pbVar19" * identifier) == (binary_expression "(byte)*puVar13" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);" (assignment_expression "puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar13 + (uint)bVar24 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + (uint)bVar24 * -2 + 1)" ( (binary_expression "(int)puVar13 + (uint)bVar24 * -2 + 1" (binary_expression "(int)puVar13 + (uint)bVar24 * -2" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }" if (parenthesized_expression "((!bVar22 && !bVar23) != bVar22)" ( (binary_expression "(!bVar22 && !bVar23) != bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" ( (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }" { (if_statement "if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }" if (parenthesized_expression "(local_34 == local_88)" ( (binary_expression "local_34 == local_88" identifier == identifier) )) (compound_statement "{\n          iVar4 = *local_b0;\n        }" { (expression_statement "iVar4 = *local_b0;" (assignment_expression "iVar4 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) }) (else_clause "else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }" else (compound_statement "{\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }" { (expression_statement "*(uint **)((int)piVar14 + -0x10) = local_34;" (assignment_expression "*(uint **)((int)piVar14 + -0x10) = local_34" (pointer_expression "*(uint **)((int)piVar14 + -0x10)" * (cast_expression "(uint **)((int)piVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar4 = *local_b0;" (assignment_expression "iVar4 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (expression_statement "iVar16 = extraout_ECX_02;" (assignment_expression "iVar16 = extraout_ECX_02" identifier = identifier) ;) }))) (goto_statement "goto LAB_000a1f35;" goto statement_identifier ;) })) })) (if_statement "if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }" if (parenthesized_expression "(local_34 != local_88)" ( (binary_expression "local_34 != local_88" identifier != identifier) )) (compound_statement "{\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }" { (expression_statement "*(uint **)((int)piVar14 + -0x10) = local_34;" (assignment_expression "*(uint **)((int)piVar14 + -0x10) = local_34" (pointer_expression "*(uint **)((int)piVar14 + -0x10)" * (cast_expression "(uint **)((int)piVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(uint ***)((int)piVar14 + -0xc) = local_84;" (assignment_expression "*(uint ***)((int)piVar14 + -0xc) = local_84" (pointer_expression "*(uint ***)((int)piVar14 + -0xc)" * (cast_expression "(uint ***)((int)piVar14 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar14 + -0xc)" ( (binary_expression "(int)piVar14 + -0xc" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = param_5;" (assignment_expression "local_30 = param_5" identifier = identifier) ;) (expression_statement "local_84 = *(uint ***)(param_2 + 0x15c);" (assignment_expression "local_84 = *(uint ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x15c)" * (cast_expression "(uint ***)(param_2 + 0x15c)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x15c)" ( (binary_expression "param_2 + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "*(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;" (assignment_expression "*(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15" (pointer_expression "*(uint ***)((int)piVar14 + -0x10)" * (cast_expression "(uint ***)((int)piVar14 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + 0x15" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2873" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_9c = FUN_00074520();" (assignment_expression "local_9c = FUN_00074520()" identifier = (call_expression "FUN_00074520()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_a0 = local_9c + 0xc;" (assignment_expression "local_a0 = local_9c + 0xc" identifier = (binary_expression "local_9c + 0xc" identifier + number_literal)) ;) (expression_statement "local_b8 = local_9c + 0x18;" (assignment_expression "local_b8 = local_9c + 0x18" identifier = (binary_expression "local_9c + 0x18" identifier + number_literal)) ;) (expression_statement "local_a4 = local_9c + 0x24;" (assignment_expression "local_a4 = local_9c + 0x24" identifier = (binary_expression "local_9c + 0x24" identifier + number_literal)) ;) (expression_statement "local_bc = local_9c + 0x30;" (assignment_expression "local_bc = local_9c + 0x30" identifier = (binary_expression "local_9c + 0x30" identifier + number_literal)) ;) (expression_statement "iVar4 = *local_b0;" (assignment_expression "iVar4 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (expression_statement "local_a5 = '\x01';" (assignment_expression "local_a5 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar16 = extraout_ECX_01;" (assignment_expression "iVar16 = extraout_ECX_01" identifier = identifier) ;) }))) (if_statement "if (*(int *)(iVar4 + 8) == 0) {\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(*(int *)(iVar4 + 8) == 0)" ( (binary_expression "*(int *)(iVar4 + 8) == 0" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }" { (expression_statement "*(int *)((int)piVar14 + -4) = iVar16;" (assignment_expression "*(int *)((int)piVar14 + -4) = iVar16" (pointer_expression "*(int *)((int)piVar14 + -4)" * (cast_expression "(int *)((int)piVar14 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -4)" ( (binary_expression "(int)piVar14 + -4" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;" (assignment_expression "*(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf" (pointer_expression "*(undefined ***)((int)piVar14 + -8)" * (cast_expression "(undefined ***)((int)piVar14 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar14 + -8)" ( (binary_expression "(int)piVar14 + -8" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_8c + -0x64ebf" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar14 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar14 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0xc)" ( (binary_expression "(int)piVar14 + -0xc" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)((int)piVar14 + -0x10)" * (cast_expression "(int *)((int)piVar14 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (param_8 != 0) {\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }" { (expression_statement "local_ac = (byte *)0x0;" (assignment_expression "local_ac = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c0 = local_7c;" (assignment_expression "local_c0 = local_7c" identifier = identifier) ;) (expression_statement "local_c4 = &local_68;" (assignment_expression "local_c4 = &local_68" identifier = (pointer_expression "&local_68" & identifier)) ;) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = (undefined1 *)piVar14;" (assignment_expression "puVar15 = (undefined1 *)piVar14" identifier = (cast_expression "(undefined1 *)piVar14" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);" do (compound_statement "{\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    }" { (expression_statement "uVar12 = param_7[1];" (assignment_expression "uVar12 = param_7[1]" identifier = (subscript_expression "param_7[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_7[2];" (assignment_expression "uVar6 = param_7[2]" identifier = (subscript_expression "param_7[2]" identifier [ number_literal ])) ;) (expression_statement "local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" identifier = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | 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 "uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;" (assignment_expression "uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8" identifier = (binary_expression "((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8" (parenthesized_expression "((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" ( (binary_expression "(uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "(uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )) >> number_literal)) ;) (expression_statement "piVar14 = (int *)puVar15;" (assignment_expression "piVar14 = (int *)puVar15" identifier = (cast_expression "(int *)puVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(uVar12 < param_11)" ( (binary_expression "uVar12 < param_11" identifier < identifier) )) (compound_statement "{\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }" { (if_statement "if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(param_12 == 0)" ( (binary_expression "param_12 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)(puVar15 + -8) = local_8c + -0x65123;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_8c + -0x65123" (pointer_expression "*(undefined ***)(puVar15 + -8)" * (cast_expression "(undefined ***)(puVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "local_8c + -0x65123" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_8c + -0x19ca36" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_000a2909;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_000a2909" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_000a2909" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar16 = uVar12 * 0x10 + param_12;" (assignment_expression "iVar16 = uVar12 * 0x10 + param_12" identifier = (binary_expression "uVar12 * 0x10 + param_12" (binary_expression "uVar12 * 0x10" identifier * number_literal) + identifier)) ;) (expression_statement "local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);" (assignment_expression "local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8)" identifier = (cast_expression "(uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8)" ( (binary_expression "*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8" (binary_expression "*(ushort *)(iVar16 + 0xe) << 8" (pointer_expression "*(ushort *)(iVar16 + 0xe)" * (cast_expression "(ushort *)(iVar16 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xe)" ( (binary_expression "iVar16 + 0xe" identifier + number_literal) )))) << number_literal) | (binary_expression "*(ushort *)(iVar16 + 0xe) >> 8" (pointer_expression "*(ushort *)(iVar16 + 0xe)" * (cast_expression "(ushort *)(iVar16 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xe)" ( (binary_expression "iVar16 + 0xe" identifier + number_literal) )))) >> number_literal)) ))))) ;) (if_statement "if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }" if (parenthesized_expression "(local_88 < (uint *)0xff00)" ( (binary_expression "local_88 < (uint *)0xff00" identifier < (cast_expression "(uint *)0xff00" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }" { (labeled_statement "LAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);" statement_identifier : (expression_statement "uVar12 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar12 = *(uint *)(iVar16 + 4)" identifier = (pointer_expression "*(uint *)(iVar16 + 4)" * (cast_expression "(uint *)(iVar16 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) ))))) ;)) (expression_statement "puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);" (assignment_expression "puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" identifier = (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "local_98 = (int)puVar13 + local_90;" (assignment_expression "local_98 = (int)puVar13 + local_90" identifier = (binary_expression "(int)puVar13 + local_90" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }" if (parenthesized_expression "(local_a5 != '\0')" ( (binary_expression "local_a5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }" { (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = local_88;" (assignment_expression "local_30 = local_88" identifier = identifier) ;) (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_9c;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_9c" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2188;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2188" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar11 = *(byte *)(iVar16 + 0xc);" (assignment_expression "bVar11 = *(byte *)(iVar16 + 0xc)" identifier = (pointer_expression "*(byte *)(iVar16 + 0xc)" * (cast_expression "(byte *)(iVar16 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) (labeled_statement "joined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }" statement_identifier : (if_statement "if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }" if (parenthesized_expression "((bVar11 & 0xf) == 3)" ( (binary_expression "(bVar11 & 0xf) == 3" (parenthesized_expression "(bVar11 & 0xf)" ( (binary_expression "bVar11 & 0xf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }" { (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_a0;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a0" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (uint *)0xffffffff;" (assignment_expression "local_34 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa21b7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa21b7" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }" else (compound_statement "{\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }" { (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_a0;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a0" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa202a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa202a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) })))) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_b8;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_b8" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_2c = local_90;" (assignment_expression "local_2c = local_90" identifier = identifier) ;) (expression_statement "local_28 = (int)local_90 >> 0x1f;" (assignment_expression "local_28 = (int)local_90 >> 0x1f" identifier = (binary_expression "(int)local_90 >> 0x1f" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2057;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2057" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = puVar13;" (assignment_expression "local_34 = puVar13" identifier = identifier) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar12 = *param_7;" (assignment_expression "uVar12 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "puVar1 = *(undefined4 **)(local_a4 + 4);" (assignment_expression "puVar1 = *(undefined4 **)(local_a4 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_a4 + 4)" * (cast_expression "(undefined4 **)(local_a4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a4 + 4)" ( (binary_expression "local_a4 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);" (assignment_expression "local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" identifier = (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }" if (parenthesized_expression "(puVar1 == *(undefined4 **)(local_a4 + 8))" ( (binary_expression "puVar1 == *(undefined4 **)(local_a4 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_a4 + 8)" * (cast_expression "(undefined4 **)(local_a4 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a4 + 8)" ( (binary_expression "local_a4 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }" { (expression_statement "*(uint ***)(puVar15 + -8) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -8) = local_84" (pointer_expression "*(uint ***)(puVar15 + -8)" * (cast_expression "(uint ***)(puVar15 + -8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar15 + -0xc) = puVar1;" (assignment_expression "*(undefined4 **)(puVar15 + -0xc) = puVar1" (pointer_expression "*(undefined4 **)(puVar15 + -0xc)" * (cast_expression "(undefined4 **)(puVar15 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_a4;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a4" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2722;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2722" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }" else (compound_statement "{\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }" { (expression_statement "*puVar1 = local_34;" (assignment_expression "*puVar1 = local_34" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_a4 + 4) = puVar1 + 2;" (assignment_expression "*(undefined4 **)(local_a4 + 4) = puVar1 + 2" (pointer_expression "*(undefined4 **)(local_a4 + 4)" * (cast_expression "(undefined4 **)(local_a4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a4 + 4)" ( (binary_expression "local_a4 + 4" identifier + number_literal) )))) = (binary_expression "puVar1 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_54 = (uint *)0x0;" (assignment_expression "local_54 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(uint ***)(puVar15 + -0xc) = &local_54;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = &local_54" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_bc;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_bc" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa209f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa209f" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (if_statement "if (!bVar23) goto LAB_000a20dc;" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (goto_statement "goto LAB_000a20dc;" goto statement_identifier ;)) })) (if_statement "if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }" if (parenthesized_expression "(param_5 != local_88)" ( (binary_expression "param_5 != local_88" identifier != identifier) )) (compound_statement "{\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }" { (expression_statement "local_94 = param_4;" (assignment_expression "local_94 = param_4" identifier = identifier) ;) (goto_statement "goto LAB_000a20bc;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }" else (compound_statement "{\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }" { (if_statement "if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }" if (parenthesized_expression "(local_88 == (uint *)0xffff)" ( (binary_expression "local_88 == (uint *)0xffff" identifier == (cast_expression "(uint *)0xffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }" { (expression_statement "uVar6 = param_4[0xc];" (assignment_expression "uVar6 = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }" { (expression_statement "uVar6 = *param_4;" (assignment_expression "uVar6 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "*(uint **)(puVar15 + -0x10) = param_4;" (assignment_expression "*(uint **)(puVar15 + -0x10) = param_4" (pointer_expression "*(uint **)(puVar15 + -0x10)" * (cast_expression "(uint **)(puVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(uVar6 + 0x6c);" (assignment_expression "pcVar2 = *(code **)(uVar6 + 0x6c)" identifier = (pointer_expression "*(code **)(uVar6 + 0x6c)" * (cast_expression "(code **)(uVar6 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar6 + 0x6c)" ( (binary_expression "uVar6 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa26de;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa26de" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = (*pcVar2)();" (assignment_expression "uVar6 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "param_4[0xc] = uVar6;" (assignment_expression "param_4[0xc] = uVar6" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "*(uint *)(puVar15 + -8) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -8) = uVar12" (pointer_expression "*(uint *)(puVar15 + -8)" * (cast_expression "(uint *)(puVar15 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0xc) = param_4;" (assignment_expression "*(uint **)(puVar15 + -0xc) = param_4" (pointer_expression "*(uint **)(puVar15 + -0xc)" * (cast_expression "(uint **)(puVar15 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar15 + -0x10) = uVar6;" (assignment_expression "*(uint *)(puVar15 + -0x10) = uVar6" (pointer_expression "*(uint *)(puVar15 + -0x10)" * (cast_expression "(uint *)(puVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa21e1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa21e1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_88 = (uint *)FUN_0028b7d0();" (assignment_expression "local_88 = (uint *)FUN_0028b7d0()" identifier = (cast_expression "(uint *)FUN_0028b7d0()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0028b7d0()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_000a2144;" goto statement_identifier ;) })) (expression_statement "uVar12 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar12 = *(uint *)(iVar16 + 4)" identifier = (pointer_expression "*(uint *)(iVar16 + 4)" * (cast_expression "(uint *)(iVar16 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);" (assignment_expression "puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" identifier = (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "local_98 = (int)puVar13 + local_90;" (assignment_expression "local_98 = (int)puVar13 + local_90" identifier = (binary_expression "(int)puVar13 + local_90" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }" if (parenthesized_expression "(local_a5 != '\0')" ( (binary_expression "local_a5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }" { (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_9c;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_9c" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa1ffe" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar11 = *(byte *)(iVar16 + 0xc);" (assignment_expression "bVar11 = *(byte *)(iVar16 + 0xc)" identifier = (pointer_expression "*(byte *)(iVar16 + 0xc)" * (cast_expression "(byte *)(iVar16 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (goto_statement "goto joined_r0x000a200c;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }" else (compound_statement "{\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(uVar12 < param_4[0x2c])" ( (binary_expression "uVar12 < param_4[0x2c]" identifier < (subscript_expression "param_4[0x2c]" identifier [ number_literal ])) )) (compound_statement "{\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }" { (expression_statement "local_5c = (uint *)0x0;" (assignment_expression "local_5c = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;" statement_identifier : (expression_statement "*(undefined ***)(puVar15 + -8) = local_8c + -0x65123;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_8c + -0x65123" (pointer_expression "*(undefined ***)(puVar15 + -8)" * (cast_expression "(undefined ***)(puVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "local_8c + -0x65123" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_8c + -0x19ca36" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2470;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2470" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar12 = uVar12 - param_4[0x2c];" (assignment_expression "uVar12 = uVar12 - param_4[0x2c]" identifier = (binary_expression "uVar12 - param_4[0x2c]" identifier - (subscript_expression "param_4[0x2c]" identifier [ number_literal ]))) ;) (expression_statement "local_84 = (uint **)param_4[0x30];" (assignment_expression "local_84 = (uint **)param_4[0x30]" identifier = (cast_expression "(uint **)param_4[0x30]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0x30]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }" if (parenthesized_expression "((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12)" ( (binary_expression "(uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12" (call_expression "(uint)((int)((int)local_84 - param_4[0x2f]) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)((int)local_84 - param_4[0x2f]) >> 2)" ( (binary_expression "(int)((int)local_84 - param_4[0x2f]) >> 2" (cast_expression "(int)((int)local_84 - param_4[0x2f])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_84 - param_4[0x2f])" ( (binary_expression "(int)local_84 - param_4[0x2f]" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_4[0x2f]" identifier [ number_literal ])) ))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)(puVar15 + -8) = local_8c + -0x65096;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_8c + -0x65096" (pointer_expression "*(undefined ***)(puVar15 + -8)" * (cast_expression "(undefined ***)(puVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "local_8c + -0x65096" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_8c + -0x19cc7b" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa294f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa294f" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);" (assignment_expression "local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4)" identifier = (pointer_expression "*(uint **)(param_4[0x2f] + uVar12 * 4)" * (cast_expression "(uint **)(param_4[0x2f] + uVar12 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4[0x2f] + uVar12 * 4)" ( (binary_expression "param_4[0x2f] + uVar12 * 4" (subscript_expression "param_4[0x2f]" identifier [ number_literal ]) + (binary_expression "uVar12 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (local_5c == (uint *)0x0) goto LAB_000a244f;" if (parenthesized_expression "(local_5c == (uint *)0x0)" ( (binary_expression "local_5c == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a244f;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }" if (parenthesized_expression "((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0)" ( (binary_expression "(*(byte *)((int)local_5c + 0x2a) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x2a) & 0x10)" ( (binary_expression "*(byte *)((int)local_5c + 0x2a) & 0x10" (pointer_expression "*(byte *)((int)local_5c + 0x2a)" * (cast_expression "(byte *)((int)local_5c + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x2a)" ( (binary_expression "(int)local_5c + 0x2a" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }" { (expression_statement "*(uint **)(puVar15 + -0xc) = local_5c;" (assignment_expression "*(uint **)(puVar15 + -0xc) = local_5c" (pointer_expression "*(uint **)(puVar15 + -0xc)" * (cast_expression "(uint **)(puVar15 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = param_2;" (assignment_expression "*(int *)(puVar15 + -0x10) = param_2" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa243a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa243a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_5c = (uint *)FUN_0034cd90();" (assignment_expression "local_5c = (uint *)FUN_0034cd90()" identifier = (cast_expression "(uint *)FUN_0034cd90()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034cd90()" identifier (argument_list "()" ( ))))) ;) })) (expression_statement "bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;" (assignment_expression "bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0" identifier = (binary_expression "(*(byte *)((int)local_5c + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_5c + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_5c + 0x2a)" * (cast_expression "(byte *)((int)local_5c + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x2a)" ( (binary_expression "(int)local_5c + 0x2a" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }" { (expression_statement "local_94 = (uint *)local_5c[2];" (assignment_expression "local_94 = (uint *)local_5c[2]" identifier = (cast_expression "(uint *)local_5c[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[2]" identifier [ number_literal ]))) ;) (expression_statement "bVar23 = (local_94[0xb] & 1) == 0;" (assignment_expression "bVar23 = (local_94[0xb] & 1) == 0" identifier = (binary_expression "(local_94[0xb] & 1) == 0" (parenthesized_expression "(local_94[0xb] & 1)" ( (binary_expression "local_94[0xb] & 1" (subscript_expression "local_94[0xb]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }" { (expression_statement "local_88 = (uint *)local_5c[3];" (assignment_expression "local_88 = (uint *)local_5c[3]" identifier = (cast_expression "(uint *)local_5c[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;" (assignment_expression "bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5" identifier = (binary_expression "*(byte *)((int)local_5c + 0x2b) >> 5" (pointer_expression "*(byte *)((int)local_5c + 0x2b)" * (cast_expression "(byte *)((int)local_5c + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x2b)" ( (binary_expression "(int)local_5c + 0x2b" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "local_a6 = bVar11 & 1;" (assignment_expression "local_a6 = bVar11 & 1" identifier = (binary_expression "bVar11 & 1" identifier & number_literal)) ;) (expression_statement "bVar23 = (bVar11 & 1) == 0;" (assignment_expression "bVar23 = (bVar11 & 1) == 0" identifier = (binary_expression "(bVar11 & 1) == 0" (parenthesized_expression "(bVar11 & 1)" ( (binary_expression "bVar11 & 1" identifier & number_literal) )) == number_literal)) ;) }) (else_clause "else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }" else (compound_statement "{\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }" { (expression_statement "local_a6 = 0;" (assignment_expression "local_a6 = 0" identifier = number_literal) ;) (expression_statement "local_88 = (uint *)0x0;" (assignment_expression "local_88 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_94 = (uint *)0x0;" (assignment_expression "local_94 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "puVar13 = (uint *)local_5c[0xc];" (assignment_expression "puVar13 = (uint *)local_5c[0xc]" identifier = (cast_expression "(uint *)local_5c[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[0xc]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }" else (compound_statement "{\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }" { (expression_statement "puVar13 = (uint *)local_5c[0xc];" (assignment_expression "puVar13 = (uint *)local_5c[0xc]" identifier = (cast_expression "(uint *)local_5c[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[0xc]" identifier [ number_literal ]))) ;) (expression_statement "local_a6 = 0;" (assignment_expression "local_a6 = 0" identifier = number_literal) ;) (expression_statement "local_88 = (uint *)0x0;" (assignment_expression "local_88 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_94 = (uint *)0x0;" (assignment_expression "local_94 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "local_98 = (int)puVar13 + local_90;" (assignment_expression "local_98 = (int)puVar13 + local_90" identifier = (binary_expression "(int)puVar13 + local_90" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "pbVar19 = (byte *)*local_5c;" (assignment_expression "pbVar19 = (byte *)*local_5c" identifier = (cast_expression "(byte *)*local_5c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_5c" * identifier))) ;) (expression_statement "iVar16 = 8;" (assignment_expression "iVar16 = 8" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)((int)local_8c + -0x19ca26);" (assignment_expression "pbVar17 = (byte *)((int)local_8c + -0x19ca26)" identifier = (cast_expression "(byte *)((int)local_8c + -0x19ca26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + -0x19ca26)" ( (binary_expression "(int)local_8c + -0x19ca26" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" identifier = identifier) ;) (do_statement "do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);" do (compound_statement "{\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar17 < *pbVar20;" (assignment_expression "bVar21 = *pbVar17 < *pbVar20" identifier = (binary_expression "*pbVar17 < *pbVar20" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar20;" (assignment_expression "bVar23 = *pbVar17 == *pbVar20" identifier = (binary_expression "*pbVar17 == *pbVar20" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar21 && !bVar23) == bVar21;" (assignment_expression "bVar23 = (!bVar21 && !bVar23) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar23) == bVar21" (parenthesized_expression "(!bVar21 && !bVar23)" ( (binary_expression "!bVar21 && !bVar23" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n          pbVar19 = pbVar19 + 8;\n        }" { (expression_statement "pbVar19 = pbVar19 + 8;" (assignment_expression "pbVar19 = pbVar19 + 8" identifier = (binary_expression "pbVar19 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }" else (compound_statement "{\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }" { (expression_statement "iVar16 = 7;" (assignment_expression "iVar16 = 7" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)((int)local_8c + -0x19ca1d);" (assignment_expression "pbVar17 = (byte *)((int)local_8c + -0x19ca1d)" identifier = (cast_expression "(byte *)((int)local_8c + -0x19ca1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + -0x19ca1d)" ( (binary_expression "(int)local_8c + -0x19ca1d" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" identifier = identifier) ;) (do_statement "do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);" do (compound_statement "{\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar17 < *pbVar20;" (assignment_expression "bVar22 = *pbVar17 < *pbVar20" identifier = (binary_expression "*pbVar17 < *pbVar20" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar20;" (assignment_expression "bVar23 = *pbVar17 == *pbVar20" identifier = (binary_expression "*pbVar17 == *pbVar20" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "pbVar19 = pbVar19 + 7;" (assignment_expression "pbVar19 = pbVar19 + 7" identifier = (binary_expression "pbVar19 + 7" identifier + number_literal)) ;) (if_statement "if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }" if (parenthesized_expression "((!bVar22 && !bVar23) != bVar22)" ( (binary_expression "(!bVar22 && !bVar23) != bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" ( (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) (compound_statement "{\n            pbVar19 = local_ac;\n          }" { (expression_statement "pbVar19 = local_ac;" (assignment_expression "pbVar19 = local_ac" identifier = identifier) ;) })) }))) (expression_statement "local_ac = pbVar19;" (assignment_expression "local_ac = pbVar19" identifier = identifier) ;) (if_statement "if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }" if (parenthesized_expression "(local_a5 != '\0')" ( (binary_expression "local_a5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }" { (if_statement "if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }" if (parenthesized_expression "(local_a6 == 0)" ( (binary_expression "local_a6 == 0" identifier == number_literal) )) (compound_statement "{\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }" { (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }" else (compound_statement "{\n            local_34 = local_94;\n            local_30 = local_88;\n          }" { (expression_statement "local_34 = local_94;" (assignment_expression "local_34 = local_94" identifier = identifier) ;) (expression_statement "local_30 = local_88;" (assignment_expression "local_30 = local_88" identifier = identifier) ;) }))) (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_9c;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_9c" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa22ed;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa22ed" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar1 = *(undefined4 **)(local_a0 + 4);" (assignment_expression "puVar1 = *(undefined4 **)(local_a0 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_a0 + 4)" * (cast_expression "(undefined4 **)(local_a0 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a0 + 4)" ( (binary_expression "local_a0 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }" if (parenthesized_expression "(puVar1 == *(undefined4 **)(local_a0 + 8))" ( (binary_expression "puVar1 == *(undefined4 **)(local_a0 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_a0 + 8)" * (cast_expression "(undefined4 **)(local_a0 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a0 + 8)" ( (binary_expression "local_a0 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }" { (expression_statement "*(uint ***)(puVar15 + -8) = &local_5c;" (assignment_expression "*(uint ***)(puVar15 + -8) = &local_5c" (pointer_expression "*(uint ***)(puVar15 + -8)" * (cast_expression "(uint ***)(puVar15 + -8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar15 + -0xc) = puVar1;" (assignment_expression "*(undefined4 **)(puVar15 + -0xc) = puVar1" (pointer_expression "*(undefined4 **)(puVar15 + -0xc)" * (cast_expression "(undefined4 **)(puVar15 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_a0;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a0" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2743;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2743" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000726c0();" (call_expression "FUN_000726c0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }" else (compound_statement "{\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }" { (expression_statement "*puVar1 = local_5c;" (assignment_expression "*puVar1 = local_5c" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(local_a0 + 4) = puVar1 + 1;" (assignment_expression "*(undefined4 **)(local_a0 + 4) = puVar1 + 1" (pointer_expression "*(undefined4 **)(local_a0 + 4)" * (cast_expression "(undefined4 **)(local_a0 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a0 + 4)" ( (binary_expression "local_a0 + 4" identifier + number_literal) )))) = (binary_expression "puVar1 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_b8;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_b8" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_2c = local_90;" (assignment_expression "local_2c = local_90" identifier = identifier) ;) (expression_statement "local_28 = (int)local_90 >> 0x1f;" (assignment_expression "local_28 = (int)local_90 >> 0x1f" identifier = (binary_expression "(int)local_90 >> 0x1f" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2338;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2338" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = puVar13;" (assignment_expression "local_34 = puVar13" identifier = identifier) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar12 = *param_7;" (assignment_expression "uVar12 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "puVar1 = *(undefined4 **)(local_a4 + 4);" (assignment_expression "puVar1 = *(undefined4 **)(local_a4 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_a4 + 4)" * (cast_expression "(undefined4 **)(local_a4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a4 + 4)" ( (binary_expression "local_a4 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier = (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }" if (parenthesized_expression "(puVar1 == *(undefined4 **)(local_a4 + 8))" ( (binary_expression "puVar1 == *(undefined4 **)(local_a4 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_a4 + 8)" * (cast_expression "(undefined4 **)(local_a4 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a4 + 8)" ( (binary_expression "local_a4 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }" { (expression_statement "*(uint ***)(puVar15 + -8) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -8) = local_84" (pointer_expression "*(uint ***)(puVar15 + -8)" * (cast_expression "(uint ***)(puVar15 + -8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar15 + -0xc) = puVar1;" (assignment_expression "*(undefined4 **)(puVar15 + -0xc) = puVar1" (pointer_expression "*(undefined4 **)(puVar15 + -0xc)" * (cast_expression "(undefined4 **)(puVar15 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_a4;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a4" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2702;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2702" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }" else (compound_statement "{\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }" { (expression_statement "*puVar1 = local_34;" (assignment_expression "*puVar1 = local_34" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_a4 + 4) = puVar1 + 2;" (assignment_expression "*(undefined4 **)(local_a4 + 4) = puVar1 + 2" (pointer_expression "*(undefined4 **)(local_a4 + 4)" * (cast_expression "(undefined4 **)(local_a4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a4 + 4)" ( (binary_expression "local_a4 + 4" identifier + number_literal) )))) = (binary_expression "puVar1 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_54 = (uint *)0x0;" (assignment_expression "local_54 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(uint ***)(puVar15 + -0xc) = &local_54;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = &local_54" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_bc;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_bc" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2380;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2380" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_a6 == 0) goto LAB_000a20dc;" if (parenthesized_expression "(local_a6 == 0)" ( (binary_expression "local_a6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a20dc;" goto statement_identifier ;)) (labeled_statement "LAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }" statement_identifier : (if_statement "if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(*(int *)(*local_b0 + 8) == 0)" ( (binary_expression "*(int *)(*local_b0 + 8) == 0" (pointer_expression "*(int *)(*local_b0 + 8)" * (cast_expression "(int *)(*local_b0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b0 + 8)" ( (binary_expression "*local_b0 + 8" (pointer_expression "*local_b0" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf" (pointer_expression "*(undefined ***)(puVar15 + -8)" * (cast_expression "(undefined ***)(puVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "local_8c + -0x64ebf" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa292e;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa292e" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_b0 + 8) + 0x18b1)" * (cast_expression "(char *)(*(int *)(*local_b0 + 8) + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_b0 + 8) + 0x18b1)" ( (binary_expression "*(int *)(*local_b0 + 8) + 0x18b1" (pointer_expression "*(int *)(*local_b0 + 8)" * (cast_expression "(int *)(*local_b0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b0 + 8)" ( (binary_expression "*local_b0 + 8" (pointer_expression "*local_b0" * identifier) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }" { (expression_statement "local_5c = param_4;" (assignment_expression "local_5c = param_4" identifier = identifier) ;) (expression_statement "iVar16 = *(int *)(param_2 + 0x158) + 0x14;" (assignment_expression "iVar16 = *(int *)(param_2 + 0x158) + 0x14" identifier = (binary_expression "*(int *)(param_2 + 0x158) + 0x14" (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_58 = param_5;" (assignment_expression "local_58 = param_5" identifier = identifier) ;) (expression_statement "local_54 = local_94;" (assignment_expression "local_54 = local_94" identifier = identifier) ;) (expression_statement "local_50 = local_88;" (assignment_expression "local_50 = local_88" identifier = identifier) ;) (expression_statement "iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);" (assignment_expression "iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18)" identifier = (pointer_expression "*(int *)(*(int *)(param_2 + 0x158) + 0x18)" * (cast_expression "(int *)(*(int *)(param_2 + 0x158) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x158) + 0x18)" ( (binary_expression "*(int *)(param_2 + 0x158) + 0x18" (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar8 = iVar16;" (assignment_expression "iVar8 = iVar16" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }" { (labeled_statement "LAB_000a24e0:\n            local_64 = &local_5c;" statement_identifier : (expression_statement "local_64 = &local_5c;" (assignment_expression "local_64 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;)) (expression_statement "*(uint ****)(puVar15 + -0x10) = &local_64;" (assignment_expression "*(uint ****)(puVar15 + -0x10) = &local_64" (pointer_expression "*(uint ****)(puVar15 + -0x10)" * (cast_expression "(uint ****)(puVar15 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa24f8;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa24f8" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00097a00();" (call_expression "FUN_00097a00()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = local_70;" (assignment_expression "iVar9 = local_70" identifier = identifier) ;) }) (else_clause "else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }" else (compound_statement "{\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }" { (do_statement "do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);" do (compound_statement "{\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            }" { (while_statement "while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }" while (parenthesized_expression "((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     )))" ( (parenthesized_expression "(iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))" ( (comma_expression "iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     )" (assignment_expression "iVar9 = iVar4" identifier = identifier) , (binary_expression "param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     )" (binary_expression "param_4 <= *(uint **)(iVar9 + 0x10)" identifier <= (pointer_expression "*(uint **)(iVar9 + 0x10)" * (cast_expression "(uint **)(iVar9 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     )" ( (parenthesized_expression "(param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))" ( (binary_expression "param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14))" (binary_expression "param_4 != *(uint **)(iVar9 + 0x10)" identifier != (pointer_expression "*(uint **)(iVar9 + 0x10)" * (cast_expression "(uint **)(iVar9 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) || (parenthesized_expression "(param_5 <= *(uint **)(iVar9 + 0x14))" ( (binary_expression "param_5 <= *(uint **)(iVar9 + 0x14)" identifier <= (pointer_expression "*(uint **)(iVar9 + 0x14)" * (cast_expression "(uint **)(iVar9 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }" { (expression_statement "iVar4 = *(int *)(iVar9 + 8);" (assignment_expression "iVar4 = *(int *)(iVar9 + 8)" identifier = (pointer_expression "*(int *)(iVar9 + 8)" * (cast_expression "(int *)(iVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = iVar9;" (assignment_expression "iVar8 = iVar9" identifier = identifier) ;) (if_statement "if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;" if (parenthesized_expression "(*(int *)(iVar9 + 8) == 0)" ( (binary_expression "*(int *)(iVar9 + 8) == 0" (pointer_expression "*(int *)(iVar9 + 8)" * (cast_expression "(int *)(iVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000a24ca;" goto statement_identifier ;)) })) (expression_statement "piVar14 = (int *)(iVar9 + 0xc);" (assignment_expression "piVar14 = (int *)(iVar9 + 0xc)" identifier = (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) ;) (expression_statement "iVar4 = *piVar14;" (assignment_expression "iVar4 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "iVar9 = iVar8;" (assignment_expression "iVar9 = iVar8" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar14 != 0)" ( (binary_expression "*piVar14 != 0" (pointer_expression "*piVar14" * identifier) != number_literal) )) ;) (labeled_statement "LAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;" statement_identifier : (if_statement "if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;" if (parenthesized_expression "(((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))" ( (binary_expression "((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14))))" (parenthesized_expression "((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10)))" ( (binary_expression "(iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))" (parenthesized_expression "(iVar16 == iVar9)" ( (binary_expression "iVar16 == iVar9" identifier == identifier) )) || (parenthesized_expression "(param_4 < *(uint **)(iVar9 + 0x10))" ( (binary_expression "param_4 < *(uint **)(iVar9 + 0x10)" identifier < (pointer_expression "*(uint **)(iVar9 + 0x10)" * (cast_expression "(uint **)(iVar9 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14))))" ( (parenthesized_expression "(param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))" ( (binary_expression "param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14))" (binary_expression "param_4 == *(uint **)(iVar9 + 0x10)" identifier == (pointer_expression "*(uint **)(iVar9 + 0x10)" * (cast_expression "(uint **)(iVar9 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "(param_5 < *(uint **)(iVar9 + 0x14))" ( (binary_expression "param_5 < *(uint **)(iVar9 + 0x14)" identifier < (pointer_expression "*(uint **)(iVar9 + 0x14)" * (cast_expression "(uint **)(iVar9 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_000a24e0;" goto statement_identifier ;))) }))) (expression_statement "local_68 = iVar9 + 0x18;" (assignment_expression "local_68 = iVar9 + 0x18" identifier = (binary_expression "iVar9 + 0x18" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)(puVar15 + -0x14) = local_c4;" (assignment_expression "*(int **)(puVar15 + -0x14) = local_c4" (pointer_expression "*(int **)(puVar15 + -0x14)" * (cast_expression "(int **)(puVar15 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)(puVar15 + -0x18) = &local_54;" (assignment_expression "*(uint ***)(puVar15 + -0x18) = &local_54" (pointer_expression "*(uint ***)(puVar15 + -0x18)" * (cast_expression "(uint ***)(puVar15 + -0x18)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)(puVar15 + -0x1c) = local_68;" (assignment_expression "*(int *)(puVar15 + -0x1c) = local_68" (pointer_expression "*(int *)(puVar15 + -0x1c)" * (cast_expression "(int *)(puVar15 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = local_c0;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = local_c0" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" * (cast_expression "(undefined1 **)(puVar15 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0xa2521;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0xa2521" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar14 = *(int **)(*local_b0 + 0xc);" (assignment_expression "piVar14 = *(int **)(*local_b0 + 0xc)" identifier = (pointer_expression "*(int **)(*local_b0 + 0xc)" * (cast_expression "(int **)(*local_b0 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_b0 + 0xc)" ( (binary_expression "*local_b0 + 0xc" (pointer_expression "*local_b0" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;" (assignment_expression "*(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082" (pointer_expression "*(undefined ***)(puVar15 + -0xc)" * (cast_expression "(undefined ***)(puVar15 + -0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "local_8c + -0x65082" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0xa296d;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0xa296d" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppuVar18 = *(undefined ***)(*piVar14 + 0x104);" (assignment_expression "ppuVar18 = *(undefined ***)(*piVar14 + 0x104)" identifier = (pointer_expression "*(undefined ***)(*piVar14 + 0x104)" * (cast_expression "(undefined ***)(*piVar14 + 0x104)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar14 + 0x104)" ( (binary_expression "*piVar14 + 0x104" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }" if (parenthesized_expression "(ppuVar18 != local_8c + -0x1510f0)" ( (binary_expression "ppuVar18 != local_8c + -0x1510f0" identifier != (binary_expression "local_8c + -0x1510f0" identifier + number_literal)) )) (compound_statement "{\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }" { (expression_statement "*(int *)(puVar15 + -0xc) = local_98;" (assignment_expression "*(int *)(puVar15 + -0xc) = local_98" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x10) = local_88;" (assignment_expression "*(uint **)(puVar15 + -0x10) = local_88" (pointer_expression "*(uint **)(puVar15 + -0x10)" * (cast_expression "(uint **)(puVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x14) = local_94;" (assignment_expression "*(uint **)(puVar15 + -0x14) = local_94" (pointer_expression "*(uint **)(puVar15 + -0x14)" * (cast_expression "(uint **)(puVar15 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x18) = param_5;" (assignment_expression "*(uint **)(puVar15 + -0x18) = param_5" (pointer_expression "*(uint **)(puVar15 + -0x18)" * (cast_expression "(uint **)(puVar15 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x1c) = param_4;" (assignment_expression "*(uint **)(puVar15 + -0x1c) = param_4" (pointer_expression "*(uint **)(puVar15 + -0x1c)" * (cast_expression "(uint **)(puVar15 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x20) = param_2;" (assignment_expression "*(int *)(puVar15 + -0x20) = param_2" (pointer_expression "*(int *)(puVar15 + -0x20)" * (cast_expression "(int *)(puVar15 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x24) = piVar14;" (assignment_expression "*(int **)(puVar15 + -0x24) = piVar14" (pointer_expression "*(int **)(puVar15 + -0x24)" * (cast_expression "(int **)(puVar15 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = 0xa26c1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = 0xa26c1" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar18)();" (call_expression "(*(code *)ppuVar18)()" (parenthesized_expression "(*(code *)ppuVar18)" ( (pointer_expression "*(code *)ppuVar18" * (cast_expression "(code *)ppuVar18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "pbVar19 = local_ac;" (assignment_expression "pbVar19 = local_ac" identifier = identifier) ;) (expression_statement "piVar14 = (int *)(puVar15 + -4);" (assignment_expression "piVar14 = (int *)(puVar15 + -4)" identifier = (cast_expression "(int *)(puVar15 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) ;) (if_statement "if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }" if (parenthesized_expression "(local_ac != (byte *)0x0)" ( (binary_expression "local_ac != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }" { (expression_statement "local_88 = &local_2c;" (assignment_expression "local_88 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "iVar16 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar16 = *(int *)(param_2 + 0x158)" identifier = (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar15 + -0x14) = local_ac;" (assignment_expression "*(byte **)(puVar15 + -0x14) = local_ac" (pointer_expression "*(byte **)(puVar15 + -0x14)" * (cast_expression "(byte **)(puVar15 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0xa258d;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0xa258d" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = local_88;" (assignment_expression "local_34 = local_88" identifier = identifier) ;) (expression_statement "sVar5 = strlen(*(char **)(puVar15 + -0x14));" (assignment_expression "sVar5 = strlen(*(char **)(puVar15 + -0x14))" identifier = (call_expression "strlen(*(char **)(puVar15 + -0x14))" identifier (argument_list "(*(char **)(puVar15 + -0x14))" ( (pointer_expression "*(char **)(puVar15 + -0x14)" * (cast_expression "(char **)(puVar15 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) )))) ;) (expression_statement "ppuVar3 = local_84;" (assignment_expression "ppuVar3 = local_84" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;" (assignment_expression "*(byte **)(puVar15 + -0xc) = pbVar19 + sVar5" (pointer_expression "*(byte **)(puVar15 + -0xc)" * (cast_expression "(byte **)(puVar15 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "pbVar19 + sVar5" identifier + identifier)) ;) (expression_statement "*(byte **)(puVar15 + -0x10) = pbVar19;" (assignment_expression "*(byte **)(puVar15 + -0x10) = pbVar19" (pointer_expression "*(byte **)(puVar15 + -0x10)" * (cast_expression "(byte **)(puVar15 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)(puVar15 + -0x14) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0x14) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0x14)" * (cast_expression "(uint ***)(puVar15 + -0x14)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0xa259f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0xa259f" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(uint ***)(puVar15 + -0xc) = ppuVar3;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = ppuVar3" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = iVar16 + 0x44;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar16 + 0x44" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "iVar16 + 0x44" identifier + number_literal)) ;) (expression_statement "*(int **)(puVar15 + -0x14) = &local_80;" (assignment_expression "*(int **)(puVar15 + -0x14) = &local_80" (pointer_expression "*(int **)(puVar15 + -0x14)" * (cast_expression "(int **)(puVar15 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_80" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0xa25b0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0xa25b0" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00094bd0();" (call_expression "FUN_00094bd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar16 = local_80;" (assignment_expression "iVar16 = local_80" identifier = identifier) ;) (if_statement "if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }" if (parenthesized_expression "(local_34 != local_88)" ( (binary_expression "local_34 != local_88" identifier != identifier) )) (compound_statement "{\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }" { (expression_statement "*(uint **)(puVar15 + -0x18) = local_34;" (assignment_expression "*(uint **)(puVar15 + -0x18) = local_34" (pointer_expression "*(uint **)(puVar15 + -0x18)" * (cast_expression "(uint **)(puVar15 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0xa25d0" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar4 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar4 = *(int *)(param_2 + 0x158)" identifier = (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "piVar14 = (int *)(puVar15 + -8);" (assignment_expression "piVar14 = (int *)(puVar15 + -8)" identifier = (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) ;) (if_statement "if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }" if (parenthesized_expression "(iVar16 != iVar4 + 0x48)" ( (binary_expression "iVar16 != iVar4 + 0x48" identifier != (binary_expression "iVar4 + 0x48" identifier + number_literal)) )) (compound_statement "{\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }" { (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = param_5;" (assignment_expression "local_30 = param_5" identifier = identifier) ;) (expression_statement "iVar8 = *(int *)(iVar4 + 0x18);" (assignment_expression "iVar8 = *(int *)(iVar4 + 0x18)" identifier = (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar4 + 0x14;" (assignment_expression "iVar9 = iVar4 + 0x14" identifier = (binary_expression "iVar4 + 0x14" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }" if (parenthesized_expression "(*(int *)(iVar4 + 0x18) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x18) == 0" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }" { (labeled_statement "LAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;" statement_identifier : (expression_statement "*(uint ****)(puVar15 + -0x18) = &local_60;" (assignment_expression "*(uint ****)(puVar15 + -0x18) = &local_60" (pointer_expression "*(uint ****)(puVar15 + -0x18)" * (cast_expression "(uint ****)(puVar15 + -0x18)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_60" & identifier)) ;)) (expression_statement "local_60 = local_84;" (assignment_expression "local_60 = local_84" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0xa2658;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0xa2658" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00097a00();" (call_expression "FUN_00097a00()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = local_70;" (assignment_expression "iVar10 = local_70" identifier = identifier) ;) }) (else_clause "else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }" else (compound_statement "{\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }" { (do_statement "do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);" do (compound_statement "{\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                }" { (while_statement "while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }" while (parenthesized_expression "((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))))))" ( (parenthesized_expression "(iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))" ( (comma_expression "iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar8" identifier = identifier) , (binary_expression "param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(uint **)(iVar10 + 0x10)" identifier <= (pointer_expression "*(uint **)(iVar10 + 0x10)" * (cast_expression "(uint **)(iVar10 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))" ( (binary_expression "param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))" (binary_expression "param_4 != *(uint **)(iVar10 + 0x10)" identifier != (pointer_expression "*(uint **)(iVar10 + 0x10)" * (cast_expression "(uint **)(iVar10 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) || (parenthesized_expression "(param_5 <= *(uint **)(iVar10 + 0x14))" ( (binary_expression "param_5 <= *(uint **)(iVar10 + 0x14)" identifier <= (pointer_expression "*(uint **)(iVar10 + 0x14)" * (cast_expression "(uint **)(iVar10 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }" { (expression_statement "iVar8 = *(int *)(iVar10 + 8);" (assignment_expression "iVar8 = *(int *)(iVar10 + 8)" identifier = (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar10;" (assignment_expression "iVar9 = iVar10" identifier = identifier) ;) (if_statement "if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;" if (parenthesized_expression "(*(int *)(iVar10 + 8) == 0)" ( (binary_expression "*(int *)(iVar10 + 8) == 0" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000a262a;" goto statement_identifier ;)) })) (expression_statement "piVar14 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar14 = (int *)(iVar10 + 0xc)" identifier = (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) ;) (expression_statement "iVar8 = *piVar14;" (assignment_expression "iVar8 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar14 != 0)" ( (binary_expression "*piVar14 != 0" (pointer_expression "*piVar14" * identifier) != number_literal) )) ;) (labeled_statement "LAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;" statement_identifier : (if_statement "if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;" if (parenthesized_expression "(((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   )" ( (binary_expression "((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))" (parenthesized_expression "((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10)))" ( (binary_expression "(iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))" (parenthesized_expression "(iVar10 == iVar4 + 0x14)" ( (binary_expression "iVar10 == iVar4 + 0x14" identifier == (binary_expression "iVar4 + 0x14" identifier + number_literal)) )) || (parenthesized_expression "(param_4 < *(uint **)(iVar10 + 0x10))" ( (binary_expression "param_4 < *(uint **)(iVar10 + 0x10)" identifier < (pointer_expression "*(uint **)(iVar10 + 0x10)" * (cast_expression "(uint **)(iVar10 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14)))" ( (binary_expression "param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))" (binary_expression "param_4 == *(uint **)(iVar10 + 0x10)" identifier == (pointer_expression "*(uint **)(iVar10 + 0x10)" * (cast_expression "(uint **)(iVar10 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "(param_5 < *(uint **)(iVar10 + 0x14))" ( (binary_expression "param_5 < *(uint **)(iVar10 + 0x14)" identifier < (pointer_expression "*(uint **)(iVar10 + 0x14)" * (cast_expression "(uint **)(iVar10 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_000a2640;" goto statement_identifier ;))) }))) (expression_statement "piVar14 = (int *)(puVar15 + -8);" (assignment_expression "piVar14 = (int *)(puVar15 + -8)" identifier = (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) ;) (expression_statement "puVar15 = puVar15 + -8;" (assignment_expression "puVar15 = puVar15 + -8" identifier = (binary_expression "puVar15 + -8" identifier + number_literal)) ;) (for_statement "for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }" for ( (assignment_expression "puVar1 = *(undefined4 **)(iVar16 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar16 + 0x30)" * (cast_expression "(undefined4 **)(iVar16 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x30)" ( (binary_expression "iVar16 + 0x30" identifier + number_literal) ))))) ; (binary_expression "puVar1 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar1 = (undefined4 *)*puVar1" identifier = (cast_expression "(undefined4 *)*puVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ) (compound_statement "{\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }" { (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)(puVar15 + -0x14) = &local_6c;" (assignment_expression "*(int **)(puVar15 + -0x14) = &local_6c" (pointer_expression "*(int **)(puVar15 + -0x14)" * (cast_expression "(int **)(puVar15 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;" (assignment_expression "*(undefined4 **)(puVar15 + -0x18) = puVar1 + 1" (pointer_expression "*(undefined4 **)(puVar15 + -0x18)" * (cast_expression "(undefined4 **)(puVar15 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar1 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar15 + -0x1c) = iVar10 + 0x18;" (assignment_expression "*(int *)(puVar15 + -0x1c) = iVar10 + 0x18" (pointer_expression "*(int *)(puVar15 + -0x1c)" * (cast_expression "(int *)(puVar15 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (binary_expression "iVar10 + 0x18" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = local_c0;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = local_c0" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" * (cast_expression "(undefined1 **)(puVar15 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0xa268b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0xa268b" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_6c = iVar10 + 0x18;" (assignment_expression "local_6c = iVar10 + 0x18" identifier = (binary_expression "iVar10 + 0x18" identifier + number_literal)) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar14 = (int *)(puVar15 + -4);" (assignment_expression "piVar14 = (int *)(puVar15 + -4)" identifier = (cast_expression "(int *)(puVar15 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) ;) (expression_statement "puVar15 = puVar15 + -4;" (assignment_expression "puVar15 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) })) })) })) }))) (labeled_statement "LAB_000a20dc:\n      local_b4 = local_b4 + 1;" statement_identifier : (expression_statement "local_b4 = local_b4 + 1;" (assignment_expression "local_b4 = local_b4 + 1" identifier = (binary_expression "local_b4 + 1" identifier + number_literal)) ;)) (expression_statement "param_7 = param_7 + 3;" (assignment_expression "param_7 = param_7 + 3" identifier = (binary_expression "param_7 + 3" identifier + number_literal)) ;) (expression_statement "puVar15 = (undefined1 *)piVar14;" (assignment_expression "puVar15 = (undefined1 *)piVar14" identifier = (cast_expression "(undefined1 *)piVar14" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(param_8 != local_b4)" ( (binary_expression "param_8 != local_b4" identifier != identifier) )) ;) })) (if_statement "if (local_4c[0] != local_c8) {\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_4c[0] != local_c8)" ( (binary_expression "local_4c[0] != local_c8" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }" { (expression_statement "*(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];" (assignment_expression "*(undefined1 **)((int)piVar14 + -0x10) = local_4c[0]" (pointer_expression "*(undefined1 **)((int)piVar14 + -0x10)" * (cast_expression "(undefined1 **)((int)piVar14 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa278a" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(ERROR "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: void gc_process_relocs(Target_sparc<32,_true> * this, Symbol_table *\n   symtab, Layout * layout, Sized_relobj_file<32,_true> * object, uint data_shndx, uint param_5,\n   uchar * prelocs, size_t reloc_count, Output_section * output_section, bool\n   needs_special_offset_handling, size_t local_symbol_count, uchar * plocal_symbols) */\n\nvoid __thiscall\nanon_unknown.dwarf_484c35::Target_sparc<32,_true>::gc_process_relocs\n          (Target_sparc<32,_true> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_true> *object,uint data_shndx,uint param_5,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,\n          size_t param_10,uchar *plocal_symbols)\n\n{\n  _Rb_tree_header *p_Var1;\n  _Base_ptr *pp_Var2;\n  General_options *pGVar3;\n  pointer puVar4;\n  uint uVar5;\n  pointer ppSVar6;\n  _Base_ptr p_Var7;\n  Target *pTVar8;\n  Garbage_collection *pGVar9;\n  undefined4 *puVar10;\n  _func_int_varargs *p_Var11;\n  Icf *pIVar12;\n  undefined1 *puVar13;\n  _Alloc_hider _Var14;\n  Parameters *pPVar15;\n  _func_int_varargs **pp_Var16;\n  size_t sVar17;\n  Xindex *pXVar18;\n  pointer pcVar19;\n  int extraout_ECX;\n  int iVar20;\n  _Base_ptr p_Var21;\n  _Rb_tree_header *p_Var22;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  byte bVar23;\n  uint uVar24;\n  Relobj *pRVar25;\n  General_options **ppGVar26;\n  undefined4 *puVar27;\n  byte *pbVar28;\n  undefined **ppuVar29;\n  undefined4 unaff_EDI;\n  _func_int_varargs **pp_Var30;\n  bool bVar31;\n  bool bVar32;\n  bool bVar33;\n  byte bVar34;\n  General_options *pGStack_d0;\n  undefined1 auStack_cc [4];\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *local_c8;\n  __node_gen_type *local_c4;\n  undefined1 *local_c0;\n  Reloc_addend_size_info *local_bc;\n  Addend_info *local_b8;\n  size_t local_b4;\n  Parameters **local_b0;\n  _func_int_varargs **local_ac;\n  byte local_a6;\n  char local_a5;\n  Offset_info *local_a4;\n  Symbol_info *local_a0;\n  mapped_type *local_9c;\n  int local_98;\n  Output_segment *local_94;\n  pointer local_90;\n  undefined **local_8c;\n  Relobj *local_88;\n  Icf *local_84;\n  undefined1 *local_80;\n  undefined1 local_7c [12];\n  _Rb_tree_header *local_70;\n  __node_gen_type __node_gen_1;\n  __node_gen_type __node_gen;\n  Section_id *local_64;\n  Icf *local_60;\n  Section_id src_id_1;\n  Section_id dst_id;\n  string src_section_name;\n  Section_id src_id;\n  pointer local_2c;\n  _Alloc_hider local_28;\n  \n  bVar34 = 0;\n  local_8c = &_GLOBAL_OFFSET_TABLE_;\n  local_b0 = &gold::parameters;\n  pGVar3 = gold::parameters->options_;\n  if (pGVar3 == (General_options *)0x0) {\n    pGStack_d0 = pGVar3;\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if (pGVar3->icf_status_ == ICF_NONE) {\n    local_c8 = &src_section_name.field_2;\n    pGStack_d0 = (General_options *)0x0;\n    src_section_name._M_dataplus._M_p = (pointer)local_c8;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"","");\n    ppGVar26 = (General_options **)auStack_cc;\n    iVar20 = extraout_ECX_00;\n  }\n  else {\n    (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);\n    local_c8 = &src_section_name.field_2;\n    ppGVar26 = &pGStack_d0;\n    iVar20 = extraout_ECX;\n  }\n  _Var14._M_p = src_section_name._M_dataplus._M_p;\n  pPVar15 = *local_b0;\n  if (pPVar15->options_ == (General_options *)0x0) {\n    *(undefined4 *)((int)ppGVar26 + -4) = unaff_EDI;\n    *(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c;\n    *(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2989;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8));\n  }\n  if (pPVar15->options_->icf_status_ == ICF_NONE) {\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = (Reloc_addend_size_info *)0x0;\n    local_a4 = (Offset_info *)0x0;\n    local_b8 = (Addend_info *)0x0;\n    local_a0 = (Symbol_info *)0x0;\n    local_9c = (mapped_type *)0x0;\n  }\n  else {\n    local_88 = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar19 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa27ef;\n      sVar17 = strlen(*(char **)((int)ppGVar26 + -0x10));\n      pcVar19 = _Var14._M_p + sVar17;\n    }\n    *(undefined4 *)((int)ppGVar26 + -4) = 0;\n    *(pointer *)((int)ppGVar26 + -8) = pcVar19;\n    local_84 = (Icf *)&src_id;\n    *(pointer *)((int)ppGVar26 + -0xc) = _Var14._M_p;\n    *(Icf **)((int)ppGVar26 + -0x10) = local_84;\n                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2804;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar20 = 5;\n    bVar33 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar26 + -0x10);\n    bVar31 = ppGVar26 == (General_options **)0x0;\n    ppuVar29 = local_8c + -0x67293;\n    pRVar25 = src_id.first;\n    do {\n      if (iVar20 == 0) break;\n      iVar20 = iVar20 + -1;\n      bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n      bVar33 = *(byte *)ppuVar29 < bVar23;\n      bVar31 = *(byte *)ppuVar29 == bVar23;\n      ppuVar29 = (undefined **)((int)ppuVar29 + (uint)bVar34 * -2 + 1);\n      pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n    } while (bVar31);\n    bVar32 = false;\n    bVar33 = (!bVar33 && !bVar31) == bVar33;\n    if (!bVar33) {\n      iVar20 = 0xf;\n      pbVar28 = (byte *)((int)local_8c + -0x19ca46);\n      pRVar25 = src_id.first;\n      do {\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar32 = *pbVar28 < bVar23;\n        bVar33 = *pbVar28 == bVar23;\n        pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n      } while (bVar33);\n      if ((!bVar32 && !bVar33) != bVar32) {\n        if (src_id.first == local_88) {\n          pPVar15 = *local_b0;\n        }\n        else {\n          *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;\n          operator_delete(*(void **)((int)ppGVar26 + -0x10));\n          pPVar15 = *local_b0;\n          iVar20 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (src_id.first != local_88) {\n      *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29dd;\n      operator_delete(*(void **)((int)ppGVar26 + -0x10));\n    }\n    *(Icf **)((int)ppGVar26 + -0xc) = local_84;\n    src_id.first = (Relobj *)object;\n    src_id.second = data_shndx;\n    local_84 = symtab->icf_;\n    *(Reloc_info_list **)((int)ppGVar26 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2873;\n    local_9c = 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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc));\n    local_a0 = &local_9c->symbol_info;\n    local_bc = &local_9c->reloc_addend_size_info;\n    local_b8 = &local_9c->addend_info;\n    local_a4 = &local_9c->offset_info;\n    pPVar15 = *local_b0;\n    local_a5 = '\x01';\n    iVar20 = extraout_ECX_01;\n  }\n  if (pPVar15->options_ == (General_options *)0x0) {\n    *(int *)((int)ppGVar26 + -4) = iVar20;\n    *(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c;\n    *(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29a5;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8));\n  }\n  if (reloc_count != 0) {\n    local_ac = (_func_int_varargs **)0x0;\n    local_c0 = local_7c;\n    local_b4 = 0;\n    local_c4 = &__node_gen;\n    puVar27 = ppGVar26;\n    do {\n      uVar24 = *(uint *)(prelocs + 4);\n      uVar5 = *(uint *)(prelocs + 8);\n      local_90 = (pointer)(uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                          uVar5 << 0x18);\n      uVar24 = ((uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 | uVar24 << 0x18) >> 8;\n      ppGVar26 = (General_options **)puVar27;\n      if (uVar24 < param_10) {\n        if (plocal_symbols == (uchar *)0x0) {\n          puVar27[-2] = local_8c + -0x65123;\n          puVar27[-3] = 0xea;\n          puVar27[-4] = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = &UNK_000a2909;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        local_88 = (Relobj *)\n                   (uint)(ushort)(*(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) >> 8);\n        if (local_88 < (Relobj *)0xff00) {\nLAB_000a2144:\n          uVar5 = *(uint *)(plocal_symbols + uVar24 * 0x10 + 4);\n          pRVar25 = (Relobj *)\n                    (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18\n                    );\n          local_98 = (int)&local_90->first + (int)pRVar25;\n          if (local_a5 != '\0') {\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_88;\n            puVar27[-3] = (Icf *)&src_id;\n            puVar27[-4] = local_9c;\n            local_84 = (Icf *)&src_id;\n            puVar27[-5] = 0xa2188;\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                      ((vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                        *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]);\n            bVar23 = plocal_symbols[uVar24 * 0x10 + 0xc];\n            bVar33 = true;\njoined_r0x000a200c:\n            if ((bVar23 & 0xf) == 3) {\n              puVar27[-3] = local_84;\n              puVar27[-4] = local_a0;\n              src_id.first = (Relobj *)0xffffffff;\n              puVar27[-5] = 0xa21b7;\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              emplace_back<gold::Symbol*>\n                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3]);\n            }\n            else {\n              puVar27[-3] = local_84;\n              puVar27[-4] = local_a0;\n              src_id.first = (Relobj *)0x0;\n              puVar27[-5] = 0xa202a;\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              emplace_back<gold::Symbol*>\n                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3]);\n            }\n            src_id.first = pRVar25;\n            puVar27[-3] = local_84;\n            puVar27[-4] = local_b8;\n            local_2c = local_90;\n            src_id.second = 0;\n            local_28._M_p = (pointer)((int)local_90 >> 0x1f);\n            puVar27[-5] = 0xa2057;\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                      ((vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                        *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3]);\n            src_id.second = 0;\n            uVar24 = *(uint *)prelocs;\n            puVar4 = (local_a4->\n                     super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                     )._M_impl._M_finish;\n            src_id.first = (Relobj *)\n                           (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                           uVar24 << 0x18);\n            if (puVar4 == (local_a4->\n                          super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                          )._M_impl._M_end_of_storage) {\n              puVar27[-2] = local_84;\n              puVar27[-3] = puVar4;\n              puVar27[-4] = local_a4;\n              puVar27[-5] = 0xa2722;\n              std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n              _M_realloc_insert<long_long_unsigned_int_const&>\n                        ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                         puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);\n            }\n            else {\n              *(Relobj **)puVar4 = src_id.first;\n              *(uint *)((int)puVar4 + 4) = 0;\n              (local_a4->\n              super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n              _M_impl._M_finish = puVar4 + 1;\n            }\n            dst_id.first = (Relobj *)0x0;\n            puVar27[-3] = &dst_id;\n            puVar27[-4] = local_bc;\n            puVar27[-5] = 0xa209f;\n            std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                      ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            puVar27[-2] = uVar24;\n            puVar27[-3] = object;\n            puVar27[-4] = pXVar18;\n            puVar27[-5] = 0xa21e1;\n            local_88 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 ((Xindex *)puVar27[-4],(Object *)puVar27[-3],puVar27[-2]);\n            goto LAB_000a2144;\n          }\n          uVar5 = *(uint *)(plocal_symbols + uVar24 * 0x10 + 4);\n          pRVar25 = (Relobj *)\n                    (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18\n                    );\n          local_98 = (int)&local_90->first + (int)pRVar25;\n          if (local_a5 != '\0') {\n            src_id.first = (Relobj *)0x0;\n            puVar27[-3] = (Icf *)&src_id;\n            puVar27[-4] = local_9c;\n            src_id.second = 0;\n            local_84 = (Icf *)&src_id;\n                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */\n            puVar27[-5] = 0xa1ffe;\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                      ((vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                        *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]);\n            bVar23 = plocal_symbols[uVar24 * 0x10 + 0xc];\n            bVar33 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar24 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_000a244f:\n          puVar27[-2] = local_8c + -0x65123;\n          puVar27[-3] = 0x11c;\n          puVar27[-4] = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa2470;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        uVar24 = uVar24 - object->local_symbol_count_;\n        ppSVar6 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        local_84 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_84 - (int)ppSVar6 >> 2) <= uVar24) {\n          puVar27[-2] = local_8c + -0x65096;\n          puVar27[-3] = 0x8ad;\n          puVar27[-4] = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa294f;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        src_id_1.first = (Relobj *)ppSVar6[uVar24];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_000a244f;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          puVar27[-3] = src_id_1.first;\n          puVar27[-4] = symtab;\n          puVar27[-5] = 0xa243a;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         ((Symbol_table *)puVar27[-4],(Symbol *)puVar27[-3]);\n        }\n        bVar33 = (((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0;\n        if (bVar33) {\n          local_94 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          bVar33 = ((uint)local_94->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_end_of_storage & 1) == 0;\n          if (bVar33) {\n            bVar23 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5;\n            local_88 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar33 = (bVar23 & 1) == 0;\n            local_a6 = bVar23 & 1;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (Relobj *)0x0;\n            local_94 = (Output_segment *)0x0;\n          }\n          pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_98 = (int)&local_90->first + (int)pRVar25;\n        }\n        else {\n          pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_a6 = 0;\n          local_88 = (Relobj *)0x0;\n          local_94 = (Output_segment *)0x0;\n          local_98 = (int)&local_90->first + (int)pRVar25;\n        }\n        bVar31 = false;\n        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar20 = 8;\n        pbVar28 = (byte *)((int)local_8c + -0x19ca26);\n        pp_Var30 = pp_Var16;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar31 = *pbVar28 < *(byte *)pp_Var30;\n          bVar33 = *pbVar28 == *(byte *)pp_Var30;\n          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n          pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);\n        } while (bVar33);\n        bVar32 = false;\n        bVar33 = (!bVar31 && !bVar33) == bVar31;\n        if (bVar33) {\n          local_ac = pp_Var16 + 2;\n        }\n        else {\n          iVar20 = 7;\n          pbVar28 = (byte *)((int)local_8c + -0x19ca1d);\n          pp_Var30 = pp_Var16;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar28 < *(byte *)pp_Var30;\n            bVar33 = *pbVar28 == *(byte *)pp_Var30;\n            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n            pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if ((!bVar32 && !bVar33) != bVar32) {\n            pp_Var16 = local_ac;\n          }\n          local_ac = pp_Var16;\n        }\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_94;\n            src_id.second = (uint)local_88;\n          }\n          puVar27[-3] = (Icf *)&src_id;\n          puVar27[-4] = local_9c;\n          local_84 = (Icf *)&src_id;\n          puVar27[-5] = 0xa22ed;\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                    ((vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                      *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]);\n          ppSVar6 = (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar6 ==\n              (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            puVar27[-2] = &src_id_1;\n            puVar27[-3] = ppSVar6;\n            puVar27[-4] = local_a0;\n            puVar27[-5] = 0xa2743;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                       (Symbol **)puVar27[-3],(Symbol **)puVar27[-2]);\n          }\n          else {\n            *ppSVar6 = (Symbol *)src_id_1.first;\n            (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar6 + 1;\n          }\n          puVar27[-3] = local_84;\n          puVar27[-4] = local_b8;\n          local_2c = local_90;\n          src_id.first = pRVar25;\n          src_id.second = 0;\n          local_28._M_p = (pointer)((int)local_90 >> 0x1f);\n          puVar27[-5] = 0xa2338;\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                    ((vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                      *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3]);\n          src_id.second = 0;\n          uVar24 = *(uint *)prelocs;\n          puVar4 = (local_a4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = (Relobj *)\n                         (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                         uVar24 << 0x18);\n          if (puVar4 == (local_a4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            puVar27[-2] = local_84;\n            puVar27[-3] = puVar4;\n            puVar27[-4] = local_a4;\n            puVar27[-5] = 0xa2702;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                       puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);\n          }\n          else {\n            *(Relobj **)puVar4 = src_id.first;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_a4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          puVar27[-3] = &dst_id;\n          puVar27[-4] = local_bc;\n          puVar27[-5] = 0xa2380;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n            ::\n            _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                      ((_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                        *)puVar27[-4],(_Base_ptr)puVar27[-3],\n                       (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-2],\n                       (tuple<> *)puVar27[-1],(piecewise_construct_t *)*puVar27);\n            p_Var22 = local_70;\n          }\n          else {\n            do {\n              while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                     object <= (Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                p_Var7 = (p_Var22->_M_header)._M_left;\n                p_Var21 = &p_Var22->_M_header;\n                if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a24ca;\n              }\n              pp_Var2 = &(p_Var22->_M_header)._M_right;\n              p_Var7 = *pp_Var2;\n              p_Var22 = (_Rb_tree_header *)p_Var21;\n            } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a24ca:\n            if (((p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\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                    ();\n          pTVar8 = (*local_b0)->target_;\n          if (pTVar8 == (Target *)0x0) {\n            puVar27[-3] = local_8c + -0x65082;\n            puVar27[-4] = 0x73;\n            puVar27[-5] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar27[-6] = 0xa296d;\n            gold::do_gold_unreachable((char *)puVar27[-5],puVar27[-4],(char *)puVar27[-3]);\n          }\n          ppuVar29 = (undefined **)pTVar8->_vptr_Target[0x41];\n          if (ppuVar29 != local_8c + -0x1510f0) {\n            puVar27[-3] = local_98;\n            puVar27[-4] = local_88;\n            puVar27[-5] = local_94;\n            puVar27[-6] = data_shndx;\n            puVar27[-7] = object;\n            puVar27[-8] = symtab;\n            puVar27[-9] = pTVar8;\n            puVar27[-10] = 0xa26c1;\n            (*(code *)ppuVar29)();\n          }\n          pp_Var16 = local_ac;\n          ppGVar26 = (General_options **)(puVar27 + -1);\n          if (local_ac != (_func_int_varargs **)0x0) {\n            local_88 = (Relobj *)&local_2c;\n            pGVar9 = symtab->gc_;\n            puVar27[-5] = local_ac;\n            local_84 = (Icf *)&src_id;\n            src_id.first = (Relobj *)&local_2c;\n            puVar27[-6] = 0xa258d;\n            sVar17 = strlen((char *)puVar27[-5]);\n            pIVar12 = local_84;\n            puVar27[-2] = 0;\n            puVar27[-3] = (byte *)((int)pp_Var16 + sVar17);\n            puVar27[-4] = pp_Var16;\n            puVar27[-5] = local_84;\n            puVar27[-6] = 0xa259f;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            puVar27[-3] = pIVar12;\n            puVar27[-4] = &pGVar9->cident_sections_;\n            puVar27[-5] = &local_80;\n            puVar27[-6] = 0xa25b0;\n            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((_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                    *)puVar27[-5],\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)puVar27[-4])\n            ;\n            puVar13 = local_80;\n            if (src_id.first != local_88) {\n              puVar27[-6] = src_id.first;\n              puVar27[-7] = 0xa25d0;\n              operator_delete((void *)puVar27[-6]);\n            }\n            pGVar9 = symtab->gc_;\n            ppGVar26 = (General_options **)(puVar27 + -2);\n            if ((_Rb_tree_header *)puVar13 !=\n                &(pGVar9->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n              p_Var1 = &(pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n              src_id.first = (Relobj *)object;\n              src_id.second = data_shndx;\n              p_Var7 = (pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                       _M_parent;\n              p_Var21 = &p_Var1->_M_header;\n              if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a2640:\n                puVar27[-6] = &local_60;\n                local_60 = local_84;\n                puVar27[-7] = 0xa2658;\n                std::\n                _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                ::\n                _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                          ((_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                            *)puVar27[-6],(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4);\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 != local_c8) {\n    *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa278a;\n    operator_delete(*(void **)((int)ppGVar26 + -0x10));\n  }\n  return;\n}\n\n" comment comment comment comment (declaration "void __thiscall\nanon_unknown.dwarf_484c35::Target_sparc<32,_true>::gc_process_relocs\n          (Target_sparc<32,_true> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_true> *object,uint data_shndx,uint param_5,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,\n          size_t param_10,uchar *plocal_symbols)\n\n{\n  _Rb_tree_header *p_Var1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) identifier (ERROR ".dwarf_484c35::Target_sparc<32" . identifier : : identifier < number_literal) , (ERROR "_true>::gc_process_relocs\n          (Target_sparc<32,_true> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_true> *object,uint data_shndx,uint param_5,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,\n          size_t param_10,uchar *plocal_symbols)\n\n{\n  _Rb_tree_header" identifier > : : (function_declarator "gc_process_relocs\n          (Target_sparc<32,_true> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_true> *object,uint data_shndx,uint param_5,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,\n          size_t param_10,uchar *plocal_symbols)" identifier (parameter_list "(Target_sparc<32,_true> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_true> *object,uint data_shndx,uint param_5,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,\n          size_t param_10,uchar *plocal_symbols)" ( (parameter_declaration "Target_sparc" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *object" type_identifier (ERROR ">" >) (pointer_declarator "*object" * identifier)) , (parameter_declaration "uint data_shndx" type_identifier identifier) , (parameter_declaration "uint param_5" 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 *output_section" type_identifier (pointer_declarator "*output_section" * identifier)) , (parameter_declaration "bool needs_special_offset_handling" primitive_type identifier) , (parameter_declaration "size_t param_10" primitive_type identifier) , (parameter_declaration "uchar *plocal_symbols" type_identifier (pointer_declarator "*plocal_symbols" * identifier)) ))) { identifier) (pointer_declarator "*p_Var1" * identifier) ;) (declaration "_Base_ptr *pp_Var2;" type_identifier (pointer_declarator "*pp_Var2" * identifier) ;) (declaration "General_options *pGVar3;" type_identifier (pointer_declarator "*pGVar3" * identifier) ;) (declaration "pointer puVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "pointer ppSVar6;" type_identifier identifier ;) (declaration "_Base_ptr p_Var7;" type_identifier identifier ;) (declaration "Target *pTVar8;" type_identifier (pointer_declarator "*pTVar8" * identifier) ;) (declaration "Garbage_collection *pGVar9;" type_identifier (pointer_declarator "*pGVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "_func_int_varargs *p_Var11;" type_identifier (pointer_declarator "*p_Var11" * identifier) ;) (declaration "Icf *pIVar12;" type_identifier (pointer_declarator "*pIVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "_Alloc_hider _Var14;" type_identifier identifier ;) (declaration "Parameters *pPVar15;" type_identifier (pointer_declarator "*pPVar15" * identifier) ;) (declaration "_func_int_varargs **pp_Var16;" type_identifier (pointer_declarator "**pp_Var16" * (pointer_declarator "*pp_Var16" * identifier)) ;) (declaration "size_t sVar17;" primitive_type identifier ;) (declaration "Xindex *pXVar18;" type_identifier (pointer_declarator "*pXVar18" * identifier) ;) (declaration "pointer pcVar19;" type_identifier identifier ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "_Base_ptr p_Var21;" type_identifier identifier ;) (declaration "_Rb_tree_header *p_Var22;" type_identifier (pointer_declarator "*p_Var22" * identifier) ;) (declaration "int extraout_ECX_00;" primitive_type identifier ;) (declaration "int extraout_ECX_01;" primitive_type identifier ;) (declaration "int extraout_ECX_02;" primitive_type identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "Relobj *pRVar25;" type_identifier (pointer_declarator "*pRVar25" * identifier) ;) (declaration "General_options **ppGVar26;" type_identifier (pointer_declarator "**ppGVar26" * (pointer_declarator "*ppGVar26" * identifier)) ;) (declaration "undefined4 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "undefined **ppuVar29;" type_identifier (pointer_declarator "**ppuVar29" * (pointer_declarator "*ppuVar29" * identifier)) ;) (declaration "undefined4 unaff_EDI;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var30;" type_identifier (pointer_declarator "**pp_Var30" * (pointer_declarator "*pp_Var30" * identifier)) ;) (declaration "bool bVar31;" primitive_type identifier ;) (declaration "bool bVar32;" primitive_type identifier ;) (declaration "bool bVar33;" primitive_type identifier ;) (declaration "byte bVar34;" type_identifier identifier ;) (declaration "General_options *pGStack_d0;" type_identifier (pointer_declarator "*pGStack_d0" * identifier) ;) (declaration "undefined1 auStack_cc [4];" type_identifier (array_declarator "auStack_cc [4]" identifier [ number_literal ]) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *local_c8;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_>_9\n  *local_c8;" (binary_expression "allocator<char>_>_9\n  *local_c8" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *local_c8" identifier * identifier)) ;)) (declaration "__node_gen_type *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "undefined1 *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "Reloc_addend_size_info *local_bc;" type_identifier (pointer_declarator "*local_bc" * identifier) ;) (declaration "Addend_info *local_b8;" type_identifier (pointer_declarator "*local_b8" * identifier) ;) (declaration "size_t local_b4;" primitive_type identifier ;) (declaration "Parameters **local_b0;" type_identifier (pointer_declarator "**local_b0" * (pointer_declarator "*local_b0" * identifier)) ;) (declaration "_func_int_varargs **local_ac;" type_identifier (pointer_declarator "**local_ac" * (pointer_declarator "*local_ac" * identifier)) ;) (declaration "byte local_a6;" type_identifier identifier ;) (declaration "char local_a5;" primitive_type identifier ;) (declaration "Offset_info *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "Symbol_info *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "mapped_type *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "Output_segment *local_94;" type_identifier (pointer_declarator "*local_94" * identifier) ;) (declaration "pointer local_90;" type_identifier identifier ;) (declaration "undefined **local_8c;" type_identifier (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)) ;) (declaration "Relobj *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "Icf *local_84;" type_identifier (pointer_declarator "*local_84" * identifier) ;) (declaration "undefined1 *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "undefined1 local_7c [12];" type_identifier (array_declarator "local_7c [12]" identifier [ number_literal ]) ;) (declaration "_Rb_tree_header *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "__node_gen_type __node_gen_1;" type_identifier identifier ;) (declaration "__node_gen_type __node_gen;" type_identifier identifier ;) (declaration "Section_id *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "Icf *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "Section_id src_id_1;" 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 ;) (declaration "pointer local_2c;" type_identifier identifier ;) (declaration "_Alloc_hider local_28;" type_identifier identifier ;) (expression_statement "bVar34 = 0;" (assignment_expression "bVar34 = 0" identifier = number_literal) ;) (expression_statement "local_8c = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "local_8c = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (expression_statement "local_b0 = &gold::parameters;" (assignment_expression "local_b0 = &gold" identifier = (pointer_expression "&gold" & identifier)) (ERROR "::parameters" : : identifier) ;) (expression_statement "pGVar3 = gold::parameters->options_;" (field_expression "pGVar3 = gold::parameters->options_" (assignment_expression "pGVar3 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar3 == (General_options *)0x0) {\n    pGStack_d0 = pGVar3;\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(pGVar3 == (General_options *)0x0)" ( (binary_expression "pGVar3 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pGStack_d0 = pGVar3;\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "pGStack_d0 = pGVar3;" (assignment_expression "pGStack_d0 = pGVar3" identifier = identifier) ;) comment (labeled_statement "gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : (ERROR ":" :) (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 (pGVar3->icf_status_ == ICF_NONE) {\n    local_c8 = &src_section_name.field_2;\n    pGStack_d0 = (General_options *)0x0;\n    src_section_name._M_dataplus._M_p = (pointer)local_c8;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"","");\n    ppGVar26 = (General_options **)auStack_cc;\n    iVar20 = extraout_ECX_00;\n  }\n  else {\n    (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);\n    local_c8 = &src_section_name.field_2;\n    ppGVar26 = &pGStack_d0;\n    iVar20 = extraout_ECX;\n  }" if (parenthesized_expression "(pGVar3->icf_status_ == ICF_NONE)" ( (binary_expression "pGVar3->icf_status_ == ICF_NONE" (field_expression "pGVar3->icf_status_" identifier -> field_identifier) == identifier) )) (compound_statement "{\n    local_c8 = &src_section_name.field_2;\n    pGStack_d0 = (General_options *)0x0;\n    src_section_name._M_dataplus._M_p = (pointer)local_c8;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"","");\n    ppGVar26 = (General_options **)auStack_cc;\n    iVar20 = extraout_ECX_00;\n  }" { (expression_statement "local_c8 = &src_section_name.field_2;" (assignment_expression "local_c8 = &src_section_name.field_2" identifier = (pointer_expression "&src_section_name.field_2" & (field_expression "src_section_name.field_2" identifier . field_identifier))) ;) (expression_statement "pGStack_d0 = (General_options *)0x0;" (assignment_expression "pGStack_d0 = (General_options *)0x0" identifier = (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "src_section_name._M_dataplus._M_p = (pointer)local_c8;" (assignment_expression "src_section_name._M_dataplus._M_p = (pointer)local_c8" (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)local_c8" ( (type_descriptor "pointer" type_identifier) ) 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) , (comma_expression """,""" (string_literal """" " ") , (string_literal """" " "))) ))) ;)) (expression_statement "ppGVar26 = (General_options **)auStack_cc;" (assignment_expression "ppGVar26 = (General_options **)auStack_cc" identifier = (cast_expression "(General_options **)auStack_cc" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "iVar20 = extraout_ECX_00;" (assignment_expression "iVar20 = extraout_ECX_00" identifier = identifier) ;) }) (else_clause "else {\n    (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);\n    local_c8 = &src_section_name.field_2;\n    ppGVar26 = &pGStack_d0;\n    iVar20 = extraout_ECX;\n  }" else (compound_statement "{\n    (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);\n    local_c8 = &src_section_name.field_2;\n    ppGVar26 = &pGStack_d0;\n    iVar20 = extraout_ECX;\n  }" { (expression_statement "(*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);" (call_expression "(*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx)" (parenthesized_expression "(*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])" ( (pointer_expression "*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10]" * (subscript_expression "(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10]" (field_expression "(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object" (field_expression "(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<32,_true>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_true>)" ( (comma_expression "object->super_Sized_relobj<32,_true" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) )) (argument_list "(&src_section_name,object,data_shndx)" ( (pointer_expression "&src_section_name" & identifier) , identifier , identifier ))) ;) (expression_statement "local_c8 = &src_section_name.field_2;" (assignment_expression "local_c8 = &src_section_name.field_2" identifier = (pointer_expression "&src_section_name.field_2" & (field_expression "src_section_name.field_2" identifier . field_identifier))) ;) (expression_statement "ppGVar26 = &pGStack_d0;" (assignment_expression "ppGVar26 = &pGStack_d0" identifier = (pointer_expression "&pGStack_d0" & identifier)) ;) (expression_statement "iVar20 = extraout_ECX;" (assignment_expression "iVar20 = extraout_ECX" identifier = identifier) ;) }))) (expression_statement "_Var14._M_p = src_section_name._M_dataplus._M_p;" (assignment_expression "_Var14._M_p = src_section_name._M_dataplus._M_p" (field_expression "_Var14._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)) ;) (expression_statement "pPVar15 = *local_b0;" (assignment_expression "pPVar15 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (if_statement "if (pPVar15->options_ == (General_options *)0x0) {\n    *(undefined4 *)((int)ppGVar26 + -4) = unaff_EDI;\n    *(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c;\n    *(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2989;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8));\n  }" if (parenthesized_expression "(pPVar15->options_ == (General_options *)0x0)" ( (binary_expression "pPVar15->options_ == (General_options *)0x0" (field_expression "pPVar15->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined4 *)((int)ppGVar26 + -4) = unaff_EDI;\n    *(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c;\n    *(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2989;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8));\n  }" { (expression_statement "*(undefined4 *)((int)ppGVar26 + -4) = unaff_EDI;" (assignment_expression "*(undefined4 *)((int)ppGVar26 + -4) = unaff_EDI" (pointer_expression "*(undefined4 *)((int)ppGVar26 + -4)" * (cast_expression "(undefined4 *)((int)ppGVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -4)" ( (binary_expression "(int)ppGVar26 + -4" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf;" (assignment_expression "*(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf" (pointer_expression "*(undefined ***)((int)ppGVar26 + -8)" * (cast_expression "(undefined ***)((int)ppGVar26 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppGVar26 + -8)" ( (binary_expression "(int)ppGVar26 + -8" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_8c + -0x64ebf" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppGVar26 + -0xc)" * (cast_expression "(undefined4 *)((int)ppGVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0xc)" ( (binary_expression "(int)ppGVar26 + -0xc" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)((int)ppGVar26 + -0x10)" * (cast_expression "(int *)((int)ppGVar26 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2989;" (assignment_expression "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2989" (pointer_expression "*(undefined4 *)((int)ppGVar26 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0x14)" ( (binary_expression "(int)ppGVar26 + -0x14" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8));" (call_expression "do_gold_unreachable\n              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8))" identifier (argument_list "(*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8))" ( (pointer_expression "*(char **)((int)ppGVar26 + -0x10)" * (cast_expression "(char **)((int)ppGVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppGVar26 + -0xc)" * (cast_expression "(int *)((int)ppGVar26 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0xc)" ( (binary_expression "(int)ppGVar26 + -0xc" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppGVar26 + -8)" * (cast_expression "(char **)((int)ppGVar26 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -8)" ( (binary_expression "(int)ppGVar26 + -8" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (if_statement "if (pPVar15->options_->icf_status_ == ICF_NONE) {\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = (Reloc_addend_size_info *)0x0;\n    local_a4 = (Offset_info *)0x0;\n    local_b8 = (Addend_info *)0x0;\n    local_a0 = (Symbol_info *)0x0;\n    local_9c = (mapped_type *)0x0;\n  }\n  else {\n    local_88 = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar19 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa27ef;\n      sVar17 = strlen(*(char **)((int)ppGVar26 + -0x10));\n      pcVar19 = _Var14._M_p + sVar17;\n    }\n    *(undefined4 *)((int)ppGVar26 + -4) = 0;\n    *(pointer *)((int)ppGVar26 + -8) = pcVar19;\n    local_84 = (Icf *)&src_id;\n    *(pointer *)((int)ppGVar26 + -0xc) = _Var14._M_p;\n    *(Icf **)((int)ppGVar26 + -0x10) = local_84;\n                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2804;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar20 = 5;\n    bVar33 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar26 + -0x10);\n    bVar31 = ppGVar26 == (General_options **)0x0;\n    ppuVar29 = local_8c + -0x67293;\n    pRVar25 = src_id.first;\n    do {\n      if (iVar20 == 0) break;\n      iVar20 = iVar20 + -1;\n      bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n      bVar33 = *(byte *)ppuVar29 < bVar23;\n      bVar31 = *(byte *)ppuVar29 == bVar23;\n      ppuVar29 = (undefined **)((int)ppuVar29 + (uint)bVar34 * -2 + 1);\n      pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n    } while (bVar31);\n    bVar32 = false;\n    bVar33 = (!bVar33 && !bVar31) == bVar33;\n    if (!bVar33) {\n      iVar20 = 0xf;\n      pbVar28 = (byte *)((int)local_8c + -0x19ca46);\n      pRVar25 = src_id.first;\n      do {\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar32 = *pbVar28 < bVar23;\n        bVar33 = *pbVar28 == bVar23;\n        pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n      } while (bVar33);\n      if ((!bVar32 && !bVar33) != bVar32) {\n        if (src_id.first == local_88) {\n          pPVar15 = *local_b0;\n        }\n        else {\n          *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;\n          operator_delete(*(void **)((int)ppGVar26 + -0x10));\n          pPVar15 = *local_b0;\n          iVar20 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (src_id.first != local_88) {\n      *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29dd;\n      operator_delete(*(void **)((int)ppGVar26 + -0x10));\n    }\n    *(Icf **)((int)ppGVar26 + -0xc) = local_84;\n    src_id.first = (Relobj *)object;\n    src_id.second = data_shndx;\n    local_84 = symtab->icf_;\n    *(Reloc_info_list **)((int)ppGVar26 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2873;\n    local_9c = 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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc));\n    local_a0 = &local_9c->symbol_info;\n    local_bc = &local_9c->reloc_addend_size_info;\n    local_b8 = &local_9c->addend_info;\n    local_a4 = &local_9c->offset_info;\n    pPVar15 = *local_b0;\n    local_a5 = '\x01';\n    iVar20 = extraout_ECX_01;\n  }" if (parenthesized_expression "(pPVar15->options_->icf_status_ == ICF_NONE)" ( (binary_expression "pPVar15->options_->icf_status_ == ICF_NONE" (field_expression "pPVar15->options_->icf_status_" (field_expression "pPVar15->options_" identifier -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = (Reloc_addend_size_info *)0x0;\n    local_a4 = (Offset_info *)0x0;\n    local_b8 = (Addend_info *)0x0;\n    local_a0 = (Symbol_info *)0x0;\n    local_9c = (mapped_type *)0x0;\n  }" { (labeled_statement "LAB_000a1f35:\n    local_a5 = '\0';" statement_identifier : (expression_statement "local_a5 = '\0';" (assignment_expression "local_a5 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_bc = (Reloc_addend_size_info *)0x0;" (assignment_expression "local_bc = (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_a4 = (Offset_info *)0x0;" (assignment_expression "local_a4 = (Offset_info *)0x0" identifier = (cast_expression "(Offset_info *)0x0" ( (type_descriptor "Offset_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b8 = (Addend_info *)0x0;" (assignment_expression "local_b8 = (Addend_info *)0x0" identifier = (cast_expression "(Addend_info *)0x0" ( (type_descriptor "Addend_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a0 = (Symbol_info *)0x0;" (assignment_expression "local_a0 = (Symbol_info *)0x0" identifier = (cast_expression "(Symbol_info *)0x0" ( (type_descriptor "Symbol_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_9c = (mapped_type *)0x0;" (assignment_expression "local_9c = (mapped_type *)0x0" identifier = (cast_expression "(mapped_type *)0x0" ( (type_descriptor "mapped_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    local_88 = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar19 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa27ef;\n      sVar17 = strlen(*(char **)((int)ppGVar26 + -0x10));\n      pcVar19 = _Var14._M_p + sVar17;\n    }\n    *(undefined4 *)((int)ppGVar26 + -4) = 0;\n    *(pointer *)((int)ppGVar26 + -8) = pcVar19;\n    local_84 = (Icf *)&src_id;\n    *(pointer *)((int)ppGVar26 + -0xc) = _Var14._M_p;\n    *(Icf **)((int)ppGVar26 + -0x10) = local_84;\n                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2804;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar20 = 5;\n    bVar33 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar26 + -0x10);\n    bVar31 = ppGVar26 == (General_options **)0x0;\n    ppuVar29 = local_8c + -0x67293;\n    pRVar25 = src_id.first;\n    do {\n      if (iVar20 == 0) break;\n      iVar20 = iVar20 + -1;\n      bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n      bVar33 = *(byte *)ppuVar29 < bVar23;\n      bVar31 = *(byte *)ppuVar29 == bVar23;\n      ppuVar29 = (undefined **)((int)ppuVar29 + (uint)bVar34 * -2 + 1);\n      pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n    } while (bVar31);\n    bVar32 = false;\n    bVar33 = (!bVar33 && !bVar31) == bVar33;\n    if (!bVar33) {\n      iVar20 = 0xf;\n      pbVar28 = (byte *)((int)local_8c + -0x19ca46);\n      pRVar25 = src_id.first;\n      do {\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar32 = *pbVar28 < bVar23;\n        bVar33 = *pbVar28 == bVar23;\n        pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n      } while (bVar33);\n      if ((!bVar32 && !bVar33) != bVar32) {\n        if (src_id.first == local_88) {\n          pPVar15 = *local_b0;\n        }\n        else {\n          *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;\n          operator_delete(*(void **)((int)ppGVar26 + -0x10));\n          pPVar15 = *local_b0;\n          iVar20 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (src_id.first != local_88) {\n      *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29dd;\n      operator_delete(*(void **)((int)ppGVar26 + -0x10));\n    }\n    *(Icf **)((int)ppGVar26 + -0xc) = local_84;\n    src_id.first = (Relobj *)object;\n    src_id.second = data_shndx;\n    local_84 = symtab->icf_;\n    *(Reloc_info_list **)((int)ppGVar26 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2873;\n    local_9c = 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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc));\n    local_a0 = &local_9c->symbol_info;\n    local_bc = &local_9c->reloc_addend_size_info;\n    local_b8 = &local_9c->addend_info;\n    local_a4 = &local_9c->offset_info;\n    pPVar15 = *local_b0;\n    local_a5 = '\x01';\n    iVar20 = extraout_ECX_01;\n  }" else (compound_statement "{\n    local_88 = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar19 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa27ef;\n      sVar17 = strlen(*(char **)((int)ppGVar26 + -0x10));\n      pcVar19 = _Var14._M_p + sVar17;\n    }\n    *(undefined4 *)((int)ppGVar26 + -4) = 0;\n    *(pointer *)((int)ppGVar26 + -8) = pcVar19;\n    local_84 = (Icf *)&src_id;\n    *(pointer *)((int)ppGVar26 + -0xc) = _Var14._M_p;\n    *(Icf **)((int)ppGVar26 + -0x10) = local_84;\n                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2804;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar20 = 5;\n    bVar33 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar26 + -0x10);\n    bVar31 = ppGVar26 == (General_options **)0x0;\n    ppuVar29 = local_8c + -0x67293;\n    pRVar25 = src_id.first;\n    do {\n      if (iVar20 == 0) break;\n      iVar20 = iVar20 + -1;\n      bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n      bVar33 = *(byte *)ppuVar29 < bVar23;\n      bVar31 = *(byte *)ppuVar29 == bVar23;\n      ppuVar29 = (undefined **)((int)ppuVar29 + (uint)bVar34 * -2 + 1);\n      pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n    } while (bVar31);\n    bVar32 = false;\n    bVar33 = (!bVar33 && !bVar31) == bVar33;\n    if (!bVar33) {\n      iVar20 = 0xf;\n      pbVar28 = (byte *)((int)local_8c + -0x19ca46);\n      pRVar25 = src_id.first;\n      do {\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar32 = *pbVar28 < bVar23;\n        bVar33 = *pbVar28 == bVar23;\n        pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n      } while (bVar33);\n      if ((!bVar32 && !bVar33) != bVar32) {\n        if (src_id.first == local_88) {\n          pPVar15 = *local_b0;\n        }\n        else {\n          *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;\n          operator_delete(*(void **)((int)ppGVar26 + -0x10));\n          pPVar15 = *local_b0;\n          iVar20 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (src_id.first != local_88) {\n      *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29dd;\n      operator_delete(*(void **)((int)ppGVar26 + -0x10));\n    }\n    *(Icf **)((int)ppGVar26 + -0xc) = local_84;\n    src_id.first = (Relobj *)object;\n    src_id.second = data_shndx;\n    local_84 = symtab->icf_;\n    *(Reloc_info_list **)((int)ppGVar26 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2873;\n    local_9c = 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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc));\n    local_a0 = &local_9c->symbol_info;\n    local_bc = &local_9c->reloc_addend_size_info;\n    local_b8 = &local_9c->addend_info;\n    local_a4 = &local_9c->offset_info;\n    pPVar15 = *local_b0;\n    local_a5 = '\x01';\n    iVar20 = extraout_ECX_01;\n  }" { (expression_statement "local_88 = (Relobj *)&local_2c;" (assignment_expression "local_88 = (Relobj *)&local_2c" identifier = (cast_expression "(Relobj *)&local_2c" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "src_id.first = (Relobj *)&local_2c;" (assignment_expression "src_id.first = (Relobj *)&local_2c" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)&local_2c" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "pcVar19 = (pointer)0xffffffff;" (assignment_expression "pcVar19 = (pointer)0xffffffff" identifier = (cast_expression "(pointer)0xffffffff" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (if_statement "if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa27ef;\n      sVar17 = strlen(*(char **)((int)ppGVar26 + -0x10));\n      pcVar19 = _Var14._M_p + sVar17;\n    }" if (parenthesized_expression "(src_section_name._M_dataplus._M_p != (pointer)0x0)" ( (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)) )) (compound_statement "{\n      *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa27ef;\n      sVar17 = strlen(*(char **)((int)ppGVar26 + -0x10));\n      pcVar19 = _Var14._M_p + sVar17;\n    }" { (expression_statement "*(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)ppGVar26 + -0x10)" * (cast_expression "(pointer *)((int)ppGVar26 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa27ef;" (assignment_expression "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa27ef" (pointer_expression "*(undefined4 *)((int)ppGVar26 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0x14)" ( (binary_expression "(int)ppGVar26 + -0x14" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar17 = strlen(*(char **)((int)ppGVar26 + -0x10));" (assignment_expression "sVar17 = strlen(*(char **)((int)ppGVar26 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)ppGVar26 + -0x10))" identifier (argument_list "(*(char **)((int)ppGVar26 + -0x10))" ( (pointer_expression "*(char **)((int)ppGVar26 + -0x10)" * (cast_expression "(char **)((int)ppGVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar19 = _Var14._M_p + sVar17;" (assignment_expression "pcVar19 = _Var14._M_p + sVar17" identifier = (binary_expression "_Var14._M_p + sVar17" (field_expression "_Var14._M_p" identifier . field_identifier) + identifier)) ;) })) (expression_statement "*(undefined4 *)((int)ppGVar26 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppGVar26 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppGVar26 + -4)" * (cast_expression "(undefined4 *)((int)ppGVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -4)" ( (binary_expression "(int)ppGVar26 + -4" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(pointer *)((int)ppGVar26 + -8) = pcVar19;" (assignment_expression "*(pointer *)((int)ppGVar26 + -8) = pcVar19" (pointer_expression "*(pointer *)((int)ppGVar26 + -8)" * (cast_expression "(pointer *)((int)ppGVar26 + -8)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -8)" ( (binary_expression "(int)ppGVar26 + -8" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_84 = (Icf *)&src_id;" (assignment_expression "local_84 = (Icf *)&src_id" identifier = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "*(pointer *)((int)ppGVar26 + -0xc) = _Var14._M_p;" (assignment_expression "*(pointer *)((int)ppGVar26 + -0xc) = _Var14._M_p" (pointer_expression "*(pointer *)((int)ppGVar26 + -0xc)" * (cast_expression "(pointer *)((int)ppGVar26 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0xc)" ( (binary_expression "(int)ppGVar26 + -0xc" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "_Var14._M_p" identifier . field_identifier)) ;) (expression_statement "*(Icf **)((int)ppGVar26 + -0x10) = local_84;" (assignment_expression "*(Icf **)((int)ppGVar26 + -0x10) = local_84" (pointer_expression "*(Icf **)((int)ppGVar26 + -0x10)" * (cast_expression "(Icf **)((int)ppGVar26 + -0x10)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2804;" (assignment_expression "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2804" (pointer_expression "*(undefined4 *)((int)ppGVar26 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0x14)" ( (binary_expression "(int)ppGVar26 + -0x14" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();" 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*>();" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*>()" * > ( )) ;)) (expression_statement "iVar20 = 5;" (assignment_expression "iVar20 = 5" identifier = number_literal) ;) (expression_statement "bVar33 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar26 + -0x10);" (assignment_expression "bVar33 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar26 + -0x10)" identifier = (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar26 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)ppGVar26 + -0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar31 = ppGVar26 == (General_options **)0x0;" (assignment_expression "bVar31 = ppGVar26 == (General_options **)0x0" identifier = (binary_expression "ppGVar26 == (General_options **)0x0" identifier == (cast_expression "(General_options **)0x0" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "ppuVar29 = local_8c + -0x67293;" (assignment_expression "ppuVar29 = local_8c + -0x67293" identifier = (binary_expression "local_8c + -0x67293" identifier + number_literal)) ;) (expression_statement "pRVar25 = src_id.first;" (assignment_expression "pRVar25 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n      if (iVar20 == 0) break;\n      iVar20 = iVar20 + -1;\n      bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n      bVar33 = *(byte *)ppuVar29 < bVar23;\n      bVar31 = *(byte *)ppuVar29 == bVar23;\n      ppuVar29 = (undefined **)((int)ppuVar29 + (uint)bVar34 * -2 + 1);\n      pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n    } while (bVar31);" do (compound_statement "{\n      if (iVar20 == 0) break;\n      iVar20 = iVar20 + -1;\n      bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n      bVar33 = *(byte *)ppuVar29 < bVar23;\n      bVar31 = *(byte *)ppuVar29 == bVar23;\n      ppuVar29 = (undefined **)((int)ppuVar29 + (uint)bVar34 * -2 + 1);\n      pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n    }" { (if_statement "if (iVar20 == 0) break;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;" (assignment_expression "bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar25->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar25->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar25->super_Object)._vptr_Object" & (field_expression "(pRVar25->super_Object)._vptr_Object" (parenthesized_expression "(pRVar25->super_Object)" ( (field_expression "pRVar25->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar33 = *(byte *)ppuVar29 < bVar23;" (assignment_expression "bVar33 = *(byte *)ppuVar29 < bVar23" identifier = (binary_expression "*(byte *)ppuVar29 < bVar23" (pointer_expression "*(byte *)ppuVar29" * (cast_expression "(byte *)ppuVar29" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier)) ;) (expression_statement "bVar31 = *(byte *)ppuVar29 == bVar23;" (assignment_expression "bVar31 = *(byte *)ppuVar29 == bVar23" identifier = (binary_expression "*(byte *)ppuVar29 == bVar23" (pointer_expression "*(byte *)ppuVar29" * (cast_expression "(byte *)ppuVar29" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier)) ;) (expression_statement "ppuVar29 = (undefined **)((int)ppuVar29 + (uint)bVar34 * -2 + 1);" (assignment_expression "ppuVar29 = (undefined **)((int)ppuVar29 + (uint)bVar34 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar29 + (uint)bVar34 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar29 + (uint)bVar34 * -2 + 1)" ( (binary_expression "(int)ppuVar29 + (uint)bVar34 * -2 + 1" (binary_expression "(int)ppuVar29 + (uint)bVar34 * -2" (cast_expression "(int)ppuVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);" (assignment_expression "pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1)" identifier = (cast_expression "(Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pRVar25 + (uint)bVar34 * -2 + 1)" ( (binary_expression "(int)pRVar25 + (uint)bVar34 * -2 + 1" (binary_expression "(int)pRVar25 + (uint)bVar34 * -2" (cast_expression "(int)pRVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar31)" ( identifier )) ;) (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;) (expression_statement "bVar33 = (!bVar33 && !bVar31) == bVar33;" (assignment_expression "bVar33 = (!bVar33 && !bVar31) == bVar33" identifier = (binary_expression "(!bVar33 && !bVar31) == bVar33" (parenthesized_expression "(!bVar33 && !bVar31)" ( (binary_expression "!bVar33 && !bVar31" (unary_expression "!bVar33" ! identifier) && (unary_expression "!bVar31" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar33) {\n      iVar20 = 0xf;\n      pbVar28 = (byte *)((int)local_8c + -0x19ca46);\n      pRVar25 = src_id.first;\n      do {\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar32 = *pbVar28 < bVar23;\n        bVar33 = *pbVar28 == bVar23;\n        pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n      } while (bVar33);\n      if ((!bVar32 && !bVar33) != bVar32) {\n        if (src_id.first == local_88) {\n          pPVar15 = *local_b0;\n        }\n        else {\n          *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;\n          operator_delete(*(void **)((int)ppGVar26 + -0x10));\n          pPVar15 = *local_b0;\n          iVar20 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }" if (parenthesized_expression "(!bVar33)" ( (unary_expression "!bVar33" ! identifier) )) (compound_statement "{\n      iVar20 = 0xf;\n      pbVar28 = (byte *)((int)local_8c + -0x19ca46);\n      pRVar25 = src_id.first;\n      do {\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar32 = *pbVar28 < bVar23;\n        bVar33 = *pbVar28 == bVar23;\n        pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n      } while (bVar33);\n      if ((!bVar32 && !bVar33) != bVar32) {\n        if (src_id.first == local_88) {\n          pPVar15 = *local_b0;\n        }\n        else {\n          *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;\n          operator_delete(*(void **)((int)ppGVar26 + -0x10));\n          pPVar15 = *local_b0;\n          iVar20 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }" { (expression_statement "iVar20 = 0xf;" (assignment_expression "iVar20 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar28 = (byte *)((int)local_8c + -0x19ca46);" (assignment_expression "pbVar28 = (byte *)((int)local_8c + -0x19ca46)" identifier = (cast_expression "(byte *)((int)local_8c + -0x19ca46)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + -0x19ca46)" ( (binary_expression "(int)local_8c + -0x19ca46" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pRVar25 = src_id.first;" (assignment_expression "pRVar25 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar32 = *pbVar28 < bVar23;\n        bVar33 = *pbVar28 == bVar23;\n        pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n      } while (bVar33);" do (compound_statement "{\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar32 = *pbVar28 < bVar23;\n        bVar33 = *pbVar28 == bVar23;\n        pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);\n      }" { (if_statement "if (iVar20 == 0) break;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;" (assignment_expression "bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar25->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar25->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar25->super_Object)._vptr_Object" & (field_expression "(pRVar25->super_Object)._vptr_Object" (parenthesized_expression "(pRVar25->super_Object)" ( (field_expression "pRVar25->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar32 = *pbVar28 < bVar23;" (assignment_expression "bVar32 = *pbVar28 < bVar23" identifier = (binary_expression "*pbVar28 < bVar23" (pointer_expression "*pbVar28" * identifier) < identifier)) ;) (expression_statement "bVar33 = *pbVar28 == bVar23;" (assignment_expression "bVar33 = *pbVar28 == bVar23" identifier = (binary_expression "*pbVar28 == bVar23" (pointer_expression "*pbVar28" * identifier) == identifier)) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);" (assignment_expression "pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1)" identifier = (cast_expression "(Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pRVar25 + (uint)bVar34 * -2 + 1)" ( (binary_expression "(int)pRVar25 + (uint)bVar34 * -2 + 1" (binary_expression "(int)pRVar25 + (uint)bVar34 * -2" (cast_expression "(int)pRVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar33)" ( identifier )) ;) (if_statement "if ((!bVar32 && !bVar33) != bVar32) {\n        if (src_id.first == local_88) {\n          pPVar15 = *local_b0;\n        }\n        else {\n          *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;\n          operator_delete(*(void **)((int)ppGVar26 + -0x10));\n          pPVar15 = *local_b0;\n          iVar20 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }" if (parenthesized_expression "((!bVar32 && !bVar33) != bVar32)" ( (binary_expression "(!bVar32 && !bVar33) != bVar32" (parenthesized_expression "(!bVar32 && !bVar33)" ( (binary_expression "!bVar32 && !bVar33" (unary_expression "!bVar32" ! identifier) && (unary_expression "!bVar33" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (src_id.first == local_88) {\n          pPVar15 = *local_b0;\n        }\n        else {\n          *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;\n          operator_delete(*(void **)((int)ppGVar26 + -0x10));\n          pPVar15 = *local_b0;\n          iVar20 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }" { (if_statement "if (src_id.first == local_88) {\n          pPVar15 = *local_b0;\n        }\n        else {\n          *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;\n          operator_delete(*(void **)((int)ppGVar26 + -0x10));\n          pPVar15 = *local_b0;\n          iVar20 = extraout_ECX_02;\n        }" if (parenthesized_expression "(src_id.first == local_88)" ( (binary_expression "src_id.first == local_88" (field_expression "src_id.first" identifier . field_identifier) == identifier) )) (compound_statement "{\n          pPVar15 = *local_b0;\n        }" { (expression_statement "pPVar15 = *local_b0;" (assignment_expression "pPVar15 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) }) (else_clause "else {\n          *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;\n          operator_delete(*(void **)((int)ppGVar26 + -0x10));\n          pPVar15 = *local_b0;\n          iVar20 = extraout_ECX_02;\n        }" else (compound_statement "{\n          *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;\n          operator_delete(*(void **)((int)ppGVar26 + -0x10));\n          pPVar15 = *local_b0;\n          iVar20 = extraout_ECX_02;\n        }" { (expression_statement "*(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;" (assignment_expression "*(Relobj **)((int)ppGVar26 + -0x10) = src_id.first" (pointer_expression "*(Relobj **)((int)ppGVar26 + -0x10)" * (cast_expression "(Relobj **)((int)ppGVar26 + -0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;" (assignment_expression "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3" (pointer_expression "*(undefined4 *)((int)ppGVar26 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0x14)" ( (binary_expression "(int)ppGVar26 + -0x14" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppGVar26 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppGVar26 + -0x10))" identifier (argument_list "(*(void **)((int)ppGVar26 + -0x10))" ( (pointer_expression "*(void **)((int)ppGVar26 + -0x10)" * (cast_expression "(void **)((int)ppGVar26 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "pPVar15 = *local_b0;" (assignment_expression "pPVar15 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (expression_statement "iVar20 = extraout_ECX_02;" (assignment_expression "iVar20 = extraout_ECX_02" identifier = identifier) ;) }))) (goto_statement "goto LAB_000a1f35;" goto statement_identifier ;) })) })) (if_statement "if (src_id.first != local_88) {\n      *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29dd;\n      operator_delete(*(void **)((int)ppGVar26 + -0x10));\n    }" if (parenthesized_expression "(src_id.first != local_88)" ( (binary_expression "src_id.first != local_88" (field_expression "src_id.first" identifier . field_identifier) != identifier) )) (compound_statement "{\n      *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29dd;\n      operator_delete(*(void **)((int)ppGVar26 + -0x10));\n    }" { (expression_statement "*(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;" (assignment_expression "*(Relobj **)((int)ppGVar26 + -0x10) = src_id.first" (pointer_expression "*(Relobj **)((int)ppGVar26 + -0x10)" * (cast_expression "(Relobj **)((int)ppGVar26 + -0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29dd;" (assignment_expression "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29dd" (pointer_expression "*(undefined4 *)((int)ppGVar26 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0x14)" ( (binary_expression "(int)ppGVar26 + -0x14" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppGVar26 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppGVar26 + -0x10))" identifier (argument_list "(*(void **)((int)ppGVar26 + -0x10))" ( (pointer_expression "*(void **)((int)ppGVar26 + -0x10)" * (cast_expression "(void **)((int)ppGVar26 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "*(Icf **)((int)ppGVar26 + -0xc) = local_84;" (assignment_expression "*(Icf **)((int)ppGVar26 + -0xc) = local_84" (pointer_expression "*(Icf **)((int)ppGVar26 + -0xc)" * (cast_expression "(Icf **)((int)ppGVar26 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -0xc)" ( (binary_expression "(int)ppGVar26 + -0xc" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "src_id.first = (Relobj *)object;" (assignment_expression "src_id.first = (Relobj *)object" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = data_shndx;" (assignment_expression "src_id.second = data_shndx" (field_expression "src_id.second" identifier . field_identifier) = identifier) ;) (expression_statement "local_84 = symtab->icf_;" (assignment_expression "local_84 = symtab->icf_" identifier = (field_expression "symtab->icf_" identifier -> field_identifier)) ;) (expression_statement "*(Reloc_info_list **)((int)ppGVar26 + -0x10) = &symtab->icf_->reloc_info_list_;" (assignment_expression "*(Reloc_info_list **)((int)ppGVar26 + -0x10) = &symtab->icf_->reloc_info_list_" (pointer_expression "*(Reloc_info_list **)((int)ppGVar26 + -0x10)" * (cast_expression "(Reloc_info_list **)((int)ppGVar26 + -0x10)" ( (type_descriptor "Reloc_info_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&symtab->icf_->reloc_info_list_" & (field_expression "symtab->icf_->reloc_info_list_" (field_expression "symtab->icf_" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2873;" (assignment_expression "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2873" (pointer_expression "*(undefined4 *)((int)ppGVar26 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0x14)" ( (binary_expression "(int)ppGVar26 + -0x14" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "local_9c = 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_9c = 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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc));" 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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc));" 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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc));" 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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc));" 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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc));" (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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc))" (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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc))" 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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc))" (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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc))" (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                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc))" ( (pointer_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                              **)((int)ppGVar26 + -0x10)" * (call_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                              **)((int)ppGVar26 + -0x10)" (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 "**" * (pointer_expression "*" * identifier))))) )) (argument_list "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(key_type **)((int)ppGVar26 + -0xc)" * (cast_expression "(key_type **)((int)ppGVar26 + -0xc)" ( (type_descriptor "key_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -0xc)" ( (binary_expression "(int)ppGVar26 + -0xc" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))))) ;))))) (expression_statement "local_a0 = &local_9c->symbol_info;" (assignment_expression "local_a0 = &local_9c->symbol_info" identifier = (pointer_expression "&local_9c->symbol_info" & (field_expression "local_9c->symbol_info" identifier -> field_identifier))) ;) (expression_statement "local_bc = &local_9c->reloc_addend_size_info;" (assignment_expression "local_bc = &local_9c->reloc_addend_size_info" identifier = (pointer_expression "&local_9c->reloc_addend_size_info" & (field_expression "local_9c->reloc_addend_size_info" identifier -> field_identifier))) ;) (expression_statement "local_b8 = &local_9c->addend_info;" (assignment_expression "local_b8 = &local_9c->addend_info" identifier = (pointer_expression "&local_9c->addend_info" & (field_expression "local_9c->addend_info" identifier -> field_identifier))) ;) (expression_statement "local_a4 = &local_9c->offset_info;" (assignment_expression "local_a4 = &local_9c->offset_info" identifier = (pointer_expression "&local_9c->offset_info" & (field_expression "local_9c->offset_info" identifier -> field_identifier))) ;) (expression_statement "pPVar15 = *local_b0;" (assignment_expression "pPVar15 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (expression_statement "local_a5 = '\x01';" (assignment_expression "local_a5 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar20 = extraout_ECX_01;" (assignment_expression "iVar20 = extraout_ECX_01" identifier = identifier) ;) }))) (if_statement "if (pPVar15->options_ == (General_options *)0x0) {\n    *(int *)((int)ppGVar26 + -4) = iVar20;\n    *(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c;\n    *(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29a5;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8));\n  }" if (parenthesized_expression "(pPVar15->options_ == (General_options *)0x0)" ( (binary_expression "pPVar15->options_ == (General_options *)0x0" (field_expression "pPVar15->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(int *)((int)ppGVar26 + -4) = iVar20;\n    *(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c;\n    *(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29a5;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8));\n  }" { (expression_statement "*(int *)((int)ppGVar26 + -4) = iVar20;" (assignment_expression "*(int *)((int)ppGVar26 + -4) = iVar20" (pointer_expression "*(int *)((int)ppGVar26 + -4)" * (cast_expression "(int *)((int)ppGVar26 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -4)" ( (binary_expression "(int)ppGVar26 + -4" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf;" (assignment_expression "*(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf" (pointer_expression "*(undefined ***)((int)ppGVar26 + -8)" * (cast_expression "(undefined ***)((int)ppGVar26 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppGVar26 + -8)" ( (binary_expression "(int)ppGVar26 + -8" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_8c + -0x64ebf" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppGVar26 + -0xc)" * (cast_expression "(undefined4 *)((int)ppGVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0xc)" ( (binary_expression "(int)ppGVar26 + -0xc" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)((int)ppGVar26 + -0x10)" * (cast_expression "(int *)((int)ppGVar26 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29a5;" (assignment_expression "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29a5" (pointer_expression "*(undefined4 *)((int)ppGVar26 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0x14)" ( (binary_expression "(int)ppGVar26 + -0x14" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8));" (call_expression "do_gold_unreachable\n              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8))" identifier (argument_list "(*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),\n               *(char **)((int)ppGVar26 + -8))" ( (pointer_expression "*(char **)((int)ppGVar26 + -0x10)" * (cast_expression "(char **)((int)ppGVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppGVar26 + -0xc)" * (cast_expression "(int *)((int)ppGVar26 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0xc)" ( (binary_expression "(int)ppGVar26 + -0xc" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppGVar26 + -8)" * (cast_expression "(char **)((int)ppGVar26 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -8)" ( (binary_expression "(int)ppGVar26 + -8" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) if (parenthesized_expression "(reloc_count != 0)" ( (binary_expression "reloc_count != 0" identifier != number_literal) )) { (expression_statement "local_ac = (_func_int_varargs **)0x0;" (assignment_expression "local_ac = (_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_c0 = local_7c;" (assignment_expression "local_c0 = local_7c" identifier = identifier) ;) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (expression_statement "local_c4 = &__node_gen;" (assignment_expression "local_c4 = &__node_gen" identifier = (pointer_expression "&__node_gen" & identifier)) ;) (expression_statement "puVar27 = ppGVar26;" (assignment_expression "puVar27 = ppGVar26" identifier = identifier) ;) do { (expression_statement "uVar24 = *(uint *)(prelocs + 4);" (assignment_expression "uVar24 = *(uint *)(prelocs + 4)" identifier = (pointer_expression "*(uint *)(prelocs + 4)" * (cast_expression "(uint *)(prelocs + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 4)" ( (binary_expression "prelocs + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)(prelocs + 8);" (assignment_expression "uVar5 = *(uint *)(prelocs + 8)" identifier = (pointer_expression "*(uint *)(prelocs + 8)" * (cast_expression "(uint *)(prelocs + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 8)" ( (binary_expression "prelocs + 8" identifier + number_literal) ))))) ;) (expression_statement "local_90 = (pointer)(uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                          uVar5 << 0x18);" (assignment_expression "local_90 = (pointer)(uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                          uVar5 << 0x18)" identifier = (call_expression "(pointer)(uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                          uVar5 << 0x18)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                          uVar5 << 0x18)" ( (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                          uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "uVar24 = ((uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 | uVar24 << 0x18) >> 8;" (assignment_expression "uVar24 = ((uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 | uVar24 << 0x18) >> 8" identifier = (binary_expression "((uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 | uVar24 << 0x18) >> 8" (parenthesized_expression "((uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 | uVar24 << 0x18)" ( (binary_expression "(uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 | uVar24 << 0x18" (binary_expression "(uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8" (binary_expression "(uVar24 & 0xff0000) >> 8" (parenthesized_expression "(uVar24 & 0xff0000)" ( (binary_expression "uVar24 & 0xff0000" identifier & number_literal) )) >> number_literal) | (binary_expression "(uVar24 & 0xff00) << 8" (parenthesized_expression "(uVar24 & 0xff00)" ( (binary_expression "uVar24 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar24 << 0x18" identifier << number_literal)) )) >> number_literal)) ;) (expression_statement "ppGVar26 = (General_options **)puVar27;" (assignment_expression "ppGVar26 = (General_options **)puVar27" identifier = (cast_expression "(General_options **)puVar27" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) if (parenthesized_expression "(uVar24 < param_10)" ( (binary_expression "uVar24 < param_10" identifier < identifier) )) { (if_statement "if (plocal_symbols == (uchar *)0x0) {\n          puVar27[-2] = local_8c + -0x65123;\n          puVar27[-3] = 0xea;\n          puVar27[-4] = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = &UNK_000a2909;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }" if (parenthesized_expression "(plocal_symbols == (uchar *)0x0)" ( (binary_expression "plocal_symbols == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar27[-2] = local_8c + -0x65123;\n          puVar27[-3] = 0xea;\n          puVar27[-4] = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = &UNK_000a2909;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }" { (expression_statement "puVar27[-2] = local_8c + -0x65123;" (assignment_expression "puVar27[-2] = local_8c + -0x65123" (subscript_expression "puVar27[-2]" identifier [ number_literal ]) = (binary_expression "local_8c + -0x65123" identifier + number_literal)) ;) (expression_statement "puVar27[-3] = 0xea;" (assignment_expression "puVar27[-3] = 0xea" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar27[-4] = (int)local_8c + -0x19ca36;" (assignment_expression "puVar27[-4] = (int)local_8c + -0x19ca36" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_8c + -0x19ca36" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "puVar27[-5] = &UNK_000a2909;" (assignment_expression "puVar27[-5] = &UNK_000a2909" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = (pointer_expression "&UNK_000a2909" & identifier)) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);" (call_expression "do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2])" identifier (argument_list "((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2])" ( (cast_expression "(char *)puVar27[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-4]" identifier [ number_literal ])) , (subscript_expression "puVar27[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar27[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-2]" identifier [ number_literal ])) ))) ;)) })) (expression_statement "local_88 = (Relobj *)\n                   (uint)(ushort)(*(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) >> 8);" (assignment_expression "local_88 = (Relobj *)\n                   (uint)(ushort)(*(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) >> 8)" identifier = (cast_expression "(Relobj *)\n                   (uint)(ushort)(*(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) >> 8)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(ushort)(*(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(*(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) >> 8)" ( (binary_expression "*(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) >> 8" (binary_expression "*(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) << 8" (pointer_expression "*(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe)" * (cast_expression "(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plocal_symbols + uVar24 * 0x10 + 0xe)" ( (binary_expression "plocal_symbols + uVar24 * 0x10 + 0xe" (binary_expression "plocal_symbols + uVar24 * 0x10" identifier + (binary_expression "uVar24 * 0x10" identifier * number_literal)) + number_literal) )))) << number_literal) | (binary_expression "*(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) >> 8" (pointer_expression "*(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe)" * (cast_expression "(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plocal_symbols + uVar24 * 0x10 + 0xe)" ( (binary_expression "plocal_symbols + uVar24 * 0x10 + 0xe" (binary_expression "plocal_symbols + uVar24 * 0x10" identifier + (binary_expression "uVar24 * 0x10" identifier * number_literal)) + number_literal) )))) >> number_literal)) ))))) ;) if (parenthesized_expression "(local_88 < (Relobj *)0xff00)" ( (binary_expression "local_88 < (Relobj *)0xff00" identifier < (cast_expression "(Relobj *)0xff00" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) { (labeled_statement "LAB_000a2144:\n          uVar5 = *(uint *)(plocal_symbols + uVar24 * 0x10 + 4);" statement_identifier : (expression_statement "uVar5 = *(uint *)(plocal_symbols + uVar24 * 0x10 + 4);" (assignment_expression "uVar5 = *(uint *)(plocal_symbols + uVar24 * 0x10 + 4)" identifier = (pointer_expression "*(uint *)(plocal_symbols + uVar24 * 0x10 + 4)" * (cast_expression "(uint *)(plocal_symbols + uVar24 * 0x10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plocal_symbols + uVar24 * 0x10 + 4)" ( (binary_expression "plocal_symbols + uVar24 * 0x10 + 4" (binary_expression "plocal_symbols + uVar24 * 0x10" identifier + (binary_expression "uVar24 * 0x10" identifier * number_literal)) + number_literal) ))))) ;)) (expression_statement "pRVar25 = (Relobj *)\n                    (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18\n                    );" (assignment_expression "pRVar25 = (Relobj *)\n                    (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18\n                    )" identifier = (cast_expression "(Relobj *)\n                    (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18\n                    )" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18\n                    )" ( (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "local_98 = (int)&local_90->first + (int)pRVar25;" (assignment_expression "local_98 = (int)&local_90->first + (int)pRVar25" identifier = (binary_expression "(int)&local_90->first + (int)pRVar25" (cast_expression "(int)&local_90->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_90->first" & (field_expression "local_90->first" identifier -> field_identifier))) + (cast_expression "(int)pRVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) if (parenthesized_expression "(local_a5 != '\0')" ( (binary_expression "local_a5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) { (expression_statement "src_id.first = (Relobj *)object;" (assignment_expression "src_id.first = (Relobj *)object" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = (uint)local_88;" (assignment_expression "src_id.second = (uint)local_88" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)local_88" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar27[-3] = (Icf *)&src_id;" (assignment_expression "puVar27[-3] = (Icf *)&src_id" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "puVar27[-4] = local_9c;" (assignment_expression "puVar27[-4] = local_9c" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_84 = (Icf *)&src_id;" (assignment_expression "local_84 = (Icf *)&src_id" identifier = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "puVar27[-5] = 0xa2188;" (assignment_expression "puVar27[-5] = 0xa2188" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = 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) : :) (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > ( ( (ERROR "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                        *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]);\n            bVar23 = plocal_symbols[uVar24 * 0x10 + 0xc];\n            bVar33 = true;\njoined_r0x000a200c:\n            if ((bVar23 & 0xf) == 3) {\n              puVar27[-3] = local_84;\n              puVar27[-4] = local_a0;\n              src_id.first = (Relobj *)0xffffffff;\n              puVar27[-5] = 0xa21b7;\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              emplace_back<gold::Symbol*>\n                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3]);\n            }\n            else {\n              puVar27[-3] = local_84;\n              puVar27[-4] = local_a0;\n              src_id.first = (Relobj *)0x0;\n              puVar27[-5] = 0xa202a;\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              emplace_back<gold::Symbol*>\n                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3]);\n            }\n            src_id.first = pRVar25;\n            puVar27[-3] = local_84;\n            puVar27[-4] = local_b8;\n            local_2c = local_90;\n            src_id.second = 0;\n            local_28._M_p = (pointer)((int)local_90 >> 0x1f);\n            puVar27[-5] = 0xa2057;\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::" (comma_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                        *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3])" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                        *)puVar27[-4]" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "vector<std::pair<gold" (binary_expression "vector<std" identifier < 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) > identifier) > (pointer_expression "*)puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ]))) , (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3])" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "*)puVar27[-3]" * (ERROR ")" )) (subscript_expression "puVar27[-3]" identifier [ number_literal ]))) ))) ; (assignment_expression "bVar23 = plocal_symbols[uVar24 * 0x10 + 0xc]" identifier = (subscript_expression "plocal_symbols[uVar24 * 0x10 + 0xc]" identifier [ (binary_expression "uVar24 * 0x10 + 0xc" (binary_expression "uVar24 * 0x10" identifier * number_literal) + number_literal) ])) ; (assignment_expression "bVar33 = true" identifier = true) ; (call_expression "joined_r0x000a200c:\n            if ((bVar23 & 0xf) == 3)" identifier (ERROR ":\n            if" : if) (argument_list "((bVar23 & 0xf) == 3)" ( (binary_expression "(bVar23 & 0xf) == 3" (parenthesized_expression "(bVar23 & 0xf)" ( (binary_expression "bVar23 & 0xf" identifier & number_literal) )) == number_literal) ))) (compound_statement "{\n              puVar27[-3] = local_84;\n              puVar27[-4] = local_a0;\n              src_id.first = (Relobj *)0xffffffff;\n              puVar27[-5] = 0xa21b7;\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              emplace_back<gold::Symbol*>\n                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3]);\n            }" { (expression_statement "puVar27[-3] = local_84;" (assignment_expression "puVar27[-3] = local_84" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-4] = local_a0;" (assignment_expression "puVar27[-4] = local_a0" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "src_id.first = (Relobj *)0xffffffff;" (assignment_expression "src_id.first = (Relobj *)0xffffffff" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0xffffffff" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar27[-5] = 0xa21b7;" (assignment_expression "puVar27[-5] = 0xa21b7" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              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*>_>::\n              emplace_back<gold" (binary_expression "Symbol*>_>::\n              emplace_back" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Symbol*>\n                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3]);" (binary_expression "Symbol*>\n                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3])" identifier * (ERROR ">" >) (parenthesized_expression "((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3])" ( (parenthesized_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3])" ( (comma_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3]" (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4]" (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "vector<gold::Symbol*,_std::allocator<gold" (binary_expression "vector<gold::Symbol*,_std" (binary_expression "vector<gold" identifier < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > (pointer_expression "*)puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ]))) , (cast_expression "(Symbol **)puVar27[-3]" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar27[-3]" identifier [ number_literal ]))) )) ))) ;) }) else (compound_statement "{\n              puVar27[-3] = local_84;\n              puVar27[-4] = local_a0;\n              src_id.first = (Relobj *)0x0;\n              puVar27[-5] = 0xa202a;\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              emplace_back<gold::Symbol*>\n                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3]);\n            }" { (expression_statement "puVar27[-3] = local_84;" (assignment_expression "puVar27[-3] = local_84" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-4] = local_a0;" (assignment_expression "puVar27[-4] = local_a0" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = 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 "puVar27[-5] = 0xa202a;" (assignment_expression "puVar27[-5] = 0xa202a" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              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*>_>::\n              emplace_back<gold" (binary_expression "Symbol*>_>::\n              emplace_back" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Symbol*>\n                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3]);" (binary_expression "Symbol*>\n                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3])" identifier * (ERROR ">" >) (parenthesized_expression "((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3])" ( (parenthesized_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3])" ( (comma_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                         (Symbol **)puVar27[-3]" (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4]" (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "vector<gold::Symbol*,_std::allocator<gold" (binary_expression "vector<gold::Symbol*,_std" (binary_expression "vector<gold" identifier < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > (pointer_expression "*)puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ]))) , (cast_expression "(Symbol **)puVar27[-3]" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar27[-3]" identifier [ number_literal ]))) )) ))) ;) }) (assignment_expression "src_id.first = pRVar25" (field_expression "src_id.first" identifier . field_identifier) = identifier) ; (assignment_expression "puVar27[-3] = local_84" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = identifier) ; (assignment_expression "puVar27[-4] = local_b8" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ; (assignment_expression "local_2c = local_90" identifier = identifier) ; (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ; (assignment_expression "local_28._M_p = (pointer)((int)local_90 >> 0x1f)" (field_expression "local_28._M_p" identifier . field_identifier) = (call_expression "(pointer)((int)local_90 >> 0x1f)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)local_90 >> 0x1f)" ( (binary_expression "(int)local_90 >> 0x1f" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ; (assignment_expression "puVar27[-5] = 0xa2057" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = number_literal) ; identifier : : (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)) : :) (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_" identifier > identifier) > ( ( (ERROR "vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                        *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3]);\n            src_id.second = 0;\n            uVar24 = *(uint *)prelocs;\n            puVar4 = (local_a4->\n                     super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                     )._M_impl._M_finish;\n            src_id.first = (Relobj *)\n                           (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                           uVar24 << 0x18);\n            if (puVar4 == (local_a4->\n                          super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                          )._M_impl._M_end_of_storage) {\n              puVar27[-2] = local_84;\n              puVar27[-3] = puVar4;\n              puVar27[-4] = local_a4;\n              puVar27[-5] = 0xa2722;\n              std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n              _M_realloc_insert<long_long_unsigned_int_const&>\n                        ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                         puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);\n            }\n            else {\n              *(Relobj **)puVar4 = src_id.first;\n              *(uint *)((int)puVar4 + 4) = 0;\n              (local_a4->\n              super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n              _M_impl._M_finish = puVar4 + 1;\n            }\n            dst_id.first = (Relobj *)0x0;\n            puVar27[-3] = &dst_id;\n            puVar27[-4] = local_bc;\n            puVar27[-5] = 0xa209f;\n            std::vector<unsigned_int,_std::" (comma_expression "vector<std::pair<long_long_int,_long_long_int>,_std" (binary_expression "vector<std::pair<long_long_int" (binary_expression "vector<std" identifier < identifier) (ERROR "::pair" : : 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                        *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3])" (binary_expression "pair<long_long_int" identifier < identifier) , (comma_expression "_long_long_int>_>_>\n                        *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3])" (binary_expression "_long_long_int>_>_>\n                        *)puVar27[-4]" (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier) > (pointer_expression "*)puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ]))) , (parenthesized_expression "(pair<long_long_int,_long_long_int> *)puVar27[-3])" ( (comma_expression "pair<long_long_int,_long_long_int> *)puVar27[-3]" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int> *)puVar27[-3]" identifier > (pointer_expression "*)puVar27[-3]" * (ERROR ")" )) (subscript_expression "puVar27[-3]" identifier [ number_literal ])))) )))) ; (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ; (assignment_expression "uVar24 = *(uint *)prelocs" identifier = (pointer_expression "*(uint *)prelocs" * (cast_expression "(uint *)prelocs" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ; (assignment_expression "puVar4 = (local_a4->\n                     super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                     )._M_impl._M_finish" identifier = (field_expression "(local_a4->\n                     super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                     )._M_impl._M_finish" (field_expression "(local_a4->\n                     super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                     )._M_impl" (parenthesized_expression "(local_a4->\n                     super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                     )" ( (ERROR "local_a4->\n                     super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_a4->\n                     super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_a4->\n                     super__Vector_base<long_long_unsigned_int" (field_expression "local_a4->\n                     super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_>" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ; (call_expression "src_id.first = (Relobj *)\n                           (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                           uVar24 << 0x18);\n            if (puVar4 == (local_a4->\n                          super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                          )._M_impl._M_end_of_storage)" (assignment_expression "src_id.first = (Relobj *)\n                           (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                           uVar24 << 0x18)" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)\n                           (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                           uVar24 << 0x18)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                           uVar24 << 0x18)" ( (binary_expression "uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                           uVar24 << 0x18" (binary_expression "uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8" (binary_expression "uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8" (binary_expression "uVar24 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar24 & 0xff0000) >> 8" (parenthesized_expression "(uVar24 & 0xff0000)" ( (binary_expression "uVar24 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff00) << 8" (parenthesized_expression "(uVar24 & 0xff00)" ( (binary_expression "uVar24 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar24 << 0x18" identifier << number_literal)) )))) (ERROR ";\n            if" ; if) (argument_list "(puVar4 == (local_a4->\n                          super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                          )._M_impl._M_end_of_storage)" ( (binary_expression "puVar4 == (local_a4->\n                          super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                          )._M_impl._M_end_of_storage" identifier == (field_expression "(local_a4->\n                          super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                          )._M_impl._M_end_of_storage" (field_expression "(local_a4->\n                          super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                          )._M_impl" (parenthesized_expression "(local_a4->\n                          super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                          )" ( (ERROR "local_a4->\n                          super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_a4->\n                          super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_a4->\n                          super__Vector_base<long_long_unsigned_int" (field_expression "local_a4->\n                          super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_>" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ))) (compound_statement "{\n              puVar27[-2] = local_84;\n              puVar27[-3] = puVar4;\n              puVar27[-4] = local_a4;\n              puVar27[-5] = 0xa2722;\n              std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n              _M_realloc_insert<long_long_unsigned_int_const&>\n                        ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                         puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);\n            }" { (expression_statement "puVar27[-2] = local_84;" (assignment_expression "puVar27[-2] = local_84" (subscript_expression "puVar27[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-3] = puVar4;" (assignment_expression "puVar27[-3] = puVar4" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-4] = local_a4;" (assignment_expression "puVar27[-4] = local_a4" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-5] = 0xa2722;" (assignment_expression "puVar27[-5] = 0xa2722" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n              _M_realloc_insert<long_long_unsigned_int_const&>\n                        ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                         puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);" statement_identifier (ERROR "::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>:" : : (comma_expression "vector<long_long_unsigned_int,_std" (binary_expression "vector<long_long_unsigned_int" identifier < identifier) , identifier) : : (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > :) : (expression_statement "_M_realloc_insert<long_long_unsigned_int_const&>\n                        ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                         puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);" (binary_expression "_M_realloc_insert<long_long_unsigned_int_const&>\n                        ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                         puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2])" (binary_expression "_M_realloc_insert<long_long_unsigned_int_const" identifier < identifier) (ERROR "&" &) > (parenthesized_expression "((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                         puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2])" ( (parenthesized_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                         puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2])" ( (ERROR "vector<long_long_unsigned_int,_std::" (comma_expression "vector<long_long_unsigned_int,_std" (binary_expression "vector<long_long_unsigned_int" identifier < identifier) , identifier) : :) (comma_expression "allocator<long_long_unsigned_int>_> *)\n                         puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]" (binary_expression "allocator<long_long_unsigned_int>_> *)\n                         puVar27[-4]" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > (pointer_expression "*)\n                         puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ]))) , (comma_expression "(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]" (cast_expression "(ulonglong *)puVar27[-3]" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-3]" identifier [ number_literal ])) , (cast_expression "(ulonglong *)puVar27[-2]" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-2]" identifier [ number_literal ])))) )) ))) ;)) }) else (compound_statement "{\n              *(Relobj **)puVar4 = src_id.first;\n              *(uint *)((int)puVar4 + 4) = 0;\n              (local_a4->\n              super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n              _M_impl._M_finish = puVar4 + 1;\n            }" { (expression_statement "*(Relobj **)puVar4 = src_id.first;" (assignment_expression "*(Relobj **)puVar4 = src_id.first" (pointer_expression "*(Relobj **)puVar4" * (cast_expression "(Relobj **)puVar4" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(uint *)((int)puVar4 + 4) = 0;" (assignment_expression "*(uint *)((int)puVar4 + 4) = 0" (pointer_expression "*(uint *)((int)puVar4 + 4)" * (cast_expression "(uint *)((int)puVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 4)" ( (binary_expression "(int)puVar4 + 4" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(local_a4->\n              super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n              _M_impl._M_finish = puVar4 + 1;" (assignment_expression "(local_a4->\n              super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n              _M_impl._M_finish = puVar4 + 1" (field_expression "(local_a4->\n              super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n              _M_impl._M_finish" (field_expression "(local_a4->\n              super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n              _M_impl" (parenthesized_expression "(local_a4->\n              super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>)" ( (ERROR "local_a4->\n              super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_a4->\n              super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_a4->\n              super__Vector_base<long_long_unsigned_int" (field_expression "local_a4->\n              super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_>" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }) (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)) ; (assignment_expression "puVar27[-3] = &dst_id" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = (pointer_expression "&dst_id" & identifier)) ; (assignment_expression "puVar27[-4] = local_bc" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ; (assignment_expression "puVar27[-5] = 0xa209f" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = number_literal) ; identifier : : (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int" (binary_expression "allocator<unsigned_int>_>::emplace_back" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) > ( (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            puVar27[-2] = uVar24;\n            puVar27[-3] = object;\n            puVar27[-4] = pXVar18;\n            puVar27[-5] = 0xa21e1" (subscript_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            puVar27[-2] = uVar24;\n            puVar27[-3] = object;\n            puVar27[-4] = pXVar18;\n            puVar27[-5]" (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            puVar27[-2] = uVar24;\n            puVar27[-3] = object;\n            puVar27[-4] = pXVar18" (subscript_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            puVar27[-2] = uVar24;\n            puVar27[-3] = object;\n            puVar27[-4]" (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            puVar27[-2] = uVar24;\n            puVar27[-3] = object" (subscript_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            puVar27[-2] = uVar24;\n            puVar27[-3]" (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            puVar27[-2] = uVar24" (subscript_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            puVar27[-2]" (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18" (field_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_" (field_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object" (field_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj" (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>)" (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)()" (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)(*p_Var11)" (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de;\n              pXVar18 = (Xindex *)" (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5] = 0xa26de" (subscript_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b];\n              puVar27[-5]" (subscript_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object;\n              p_Var11 = pp_Var16[0x1b]" (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4] = object" (subscript_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              puVar27[-4]" (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object" (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0)" (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_" (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (Relobj *)0xffff)" (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88) {\n            local_94 = (Output_segment *)object" (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33) goto LAB_000a20dc;\n          }\n          if ((Relobj *)data_shndx != local_88)" (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]);\n            if (!bVar33)" (parenthesized_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3])" ( (ERROR "vector<unsigned_int,_std::" (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : :) (comma_expression "allocator<unsigned_int>_> *)puVar27[-4],\n                       (uint *)puVar27[-3]" (binary_expression "allocator<unsigned_int>_> *)puVar27[-4]" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > (pointer_expression "*)puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ]))) , (cast_expression "(uint *)puVar27[-3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-3]" identifier [ number_literal ]))) )) (ERROR ";\n            if" ; if) (argument_list "(!bVar33)" ( (unary_expression "!bVar33" ! identifier) ))) (ERROR "goto LAB_000a20dc;\n          }\n          if" identifier identifier ; } if) (argument_list "((Relobj *)data_shndx != local_88)" ( (binary_expression "(Relobj *)data_shndx != local_88" (cast_expression "(Relobj *)data_shndx" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) ))) (ERROR "{\n            local_94" { identifier) = (cast_expression "(Output_segment *)object" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) (ERROR ";\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if" ; goto identifier ; } } else { if) (argument_list "(local_88 == (Relobj *)0xffff)" ( (binary_expression "local_88 == (Relobj *)0xffff" identifier == (cast_expression "(Relobj *)0xffff" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) (ERROR "{\n            pXVar18" { identifier) = (field_expression "(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_" (field_expression "(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<32,_true>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_true>)" ( (comma_expression "object->super_Sized_relobj<32,_true" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) (ERROR ";\n            if" ; if) (argument_list "(pXVar18 == (Xindex *)0x0)" ( (binary_expression "pXVar18 == (Xindex *)0x0" identifier == (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) (ERROR "{\n              pp_Var16" { identifier) = (field_expression "(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object" (field_expression "(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<32,_true>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_true>)" ( (comma_expression "object->super_Sized_relobj<32,_true" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) (ERROR ";\n              puVar27" ; identifier) [ number_literal ]) = identifier) (ERROR ";\n              p_Var11 = pp_Var16" ; identifier = identifier) [ number_literal ]) (ERROR ";\n              puVar27" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n              pXVar18 =" ; identifier =) (argument_list "(Xindex *)" ( (binary_expression "Xindex *" identifier * identifier) ))) (argument_list "(*p_Var11)" ( (pointer_expression "*p_Var11" * identifier) ))) (argument_list "()" ( ))) (ERROR ";" ;) (argument_list "(object->super_Sized_relobj<32,_true>)" ( (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier (ERROR ">" >) ))) . field_identifier) . field_identifier) . field_identifier) = identifier) (ERROR ";\n            }\n            puVar27" ; } identifier) [ number_literal ]) = identifier) (ERROR ";\n            puVar27" ; identifier) [ number_literal ]) = identifier) (ERROR ";\n            puVar27" ; identifier) [ number_literal ]) = identifier) (ERROR ";\n            puVar27" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n            local_88 =" ; identifier =) ( (ERROR "Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 ((Xindex *)puVar27[-4],(Object *)puVar27[-3],puVar27[-2]);\n            goto LAB_000a2144;\n          }\n          uVar5 = *(uint *)(plocal_symbols + uVar24 * 0x10 + 4);\n          pRVar25 = (Relobj *)\n                    (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18\n                    );\n          local_98 = (int)&local_90->first + (int)pRVar25;\n          if (local_a5 != '\0')" (call_expression "Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 ((Xindex *)puVar27[-4],(Object *)puVar27[-3],puVar27[-2])" (binary_expression "Relobj *)\n                       gold" identifier * (ERROR ")" )) identifier) (ERROR "::Xindex::sym_xindex_to_shndx" : : identifier : : identifier) (argument_list "((Xindex *)puVar27[-4],(Object *)puVar27[-3],puVar27[-2])" ( (cast_expression "(Xindex *)puVar27[-4]" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-4]" identifier [ number_literal ])) , (cast_expression "(Object *)puVar27[-3]" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-3]" identifier [ number_literal ])) , (subscript_expression "puVar27[-2]" identifier [ number_literal ]) ))) ; goto identifier ; } (assignment_expression "uVar5 = *(uint *)(plocal_symbols + uVar24 * 0x10 + 4)" identifier = (pointer_expression "*(uint *)(plocal_symbols + uVar24 * 0x10 + 4)" * (cast_expression "(uint *)(plocal_symbols + uVar24 * 0x10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plocal_symbols + uVar24 * 0x10 + 4)" ( (binary_expression "plocal_symbols + uVar24 * 0x10 + 4" (binary_expression "plocal_symbols + uVar24 * 0x10" identifier + (binary_expression "uVar24 * 0x10" identifier * number_literal)) + number_literal) ))))) ; (assignment_expression "pRVar25 = (Relobj *)\n                    (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18\n                    )" identifier = (cast_expression "(Relobj *)\n                    (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18\n                    )" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18\n                    )" ( (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal)) )))) ; (call_expression "local_98 = (int)&local_90->first + (int)pRVar25;\n          if (local_a5 != '\0')" (assignment_expression "local_98 = (int)&local_90->first + (int)pRVar25" identifier = (binary_expression "(int)&local_90->first + (int)pRVar25" (cast_expression "(int)&local_90->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_90->first" & (field_expression "local_90->first" identifier -> field_identifier))) + (cast_expression "(int)pRVar25" ( (type_descriptor "int" primitive_type) ) identifier))) (ERROR ";\n          if" ; if) (argument_list "(local_a5 != '\0')" ( (binary_expression "local_a5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )))) { (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 "puVar27[-3] = (Icf *)&src_id;" (assignment_expression "puVar27[-3] = (Icf *)&src_id" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "puVar27[-4] = local_9c;" (assignment_expression "puVar27[-4] = local_9c" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "src_id.second = 0;" (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ;) (expression_statement "local_84 = (Icf *)&src_id;" (assignment_expression "local_84 = (Icf *)&src_id" identifier = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) comment (expression_statement "puVar27[-5] = 0xa1ffe;" (assignment_expression "puVar27[-5] = 0xa1ffe" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = 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) : :) (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > ( ( (ERROR "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                        *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]);\n            bVar23 = plocal_symbols[uVar24 * 0x10 + 0xc];\n            bVar33 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else" (comma_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                        *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3])" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                        *)puVar27[-4]" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "vector<std::pair<gold" (binary_expression "vector<std" identifier < 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) > identifier) > (pointer_expression "*)puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ]))) , (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3])" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "*)puVar27[-3]" * (ERROR ")" )) (subscript_expression "puVar27[-3]" identifier [ number_literal ]))) ))) ; (assignment_expression "bVar23 = plocal_symbols[uVar24 * 0x10 + 0xc]" identifier = (subscript_expression "plocal_symbols[uVar24 * 0x10 + 0xc]" identifier [ (binary_expression "uVar24 * 0x10 + 0xc" (binary_expression "uVar24 * 0x10" identifier * number_literal) + number_literal) ])) ; (assignment_expression "bVar33 = false" identifier = false) ; goto identifier ; } } } else) { (if_statement "if (uVar24 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_000a244f:\n          puVar27[-2] = local_8c + -0x65123;\n          puVar27[-3] = 0x11c;\n          puVar27[-4] = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa2470;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }" if (parenthesized_expression "(uVar24 < object->local_symbol_count_)" ( (binary_expression "uVar24 < object->local_symbol_count_" identifier < (field_expression "object->local_symbol_count_" identifier -> field_identifier)) )) (compound_statement "{\n          src_id_1.first = (Relobj *)0x0;\nLAB_000a244f:\n          puVar27[-2] = local_8c + -0x65123;\n          puVar27[-3] = 0x11c;\n          puVar27[-4] = (int)local_8c + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa2470;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }" { (expression_statement "src_id_1.first = (Relobj *)0x0;" (assignment_expression "src_id_1.first = (Relobj *)0x0" (field_expression "src_id_1.first" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000a244f:\n          puVar27[-2] = local_8c + -0x65123;" statement_identifier : (expression_statement "puVar27[-2] = local_8c + -0x65123;" (assignment_expression "puVar27[-2] = local_8c + -0x65123" (subscript_expression "puVar27[-2]" identifier [ number_literal ]) = (binary_expression "local_8c + -0x65123" identifier + number_literal)) ;)) (expression_statement "puVar27[-3] = 0x11c;" (assignment_expression "puVar27[-3] = 0x11c" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar27[-4] = (int)local_8c + -0x19ca36;" (assignment_expression "puVar27[-4] = (int)local_8c + -0x19ca36" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_8c + -0x19ca36" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "puVar27[-5] = 0xa2470;" (assignment_expression "puVar27[-5] = 0xa2470" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);" (call_expression "do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2])" identifier (argument_list "((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2])" ( (cast_expression "(char *)puVar27[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-4]" identifier [ number_literal ])) , (subscript_expression "puVar27[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar27[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-2]" identifier [ number_literal ])) ))) ;)) })) (expression_statement "uVar24 = uVar24 - object->local_symbol_count_;" (assignment_expression "uVar24 = uVar24 - object->local_symbol_count_" identifier = (binary_expression "uVar24 - object->local_symbol_count_" identifier - (field_expression "object->local_symbol_count_" identifier -> field_identifier))) ;) (expression_statement "ppSVar6 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;" (field_expression "ppSVar6 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start" (field_expression "ppSVar6 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "ppSVar6 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar6 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar6 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std" (assignment_expression "ppSVar6 = (object->symbols_).\n                  super__Vector_base<gold" identifier = (binary_expression "(object->symbols_).\n                  super__Vector_base<gold" (field_expression "(object->symbols_).\n                  super__Vector_base" (parenthesized_expression "(object->symbols_)" ( (field_expression "object->symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "local_84 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;" (field_expression "local_84 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish" (field_expression "local_84 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "local_84 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_84 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_84 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std" (assignment_expression "local_84 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold" identifier = (binary_expression "(Icf *)(object->symbols_).\n                          super__Vector_base<gold" (cast_expression "(Icf *)(object->symbols_).\n                          super__Vector_base" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(object->symbols_).\n                          super__Vector_base" (parenthesized_expression "(object->symbols_)" ( (field_expression "object->symbols_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((uint)((int)local_84 - (int)ppSVar6 >> 2) <= uVar24) {\n          puVar27[-2] = local_8c + -0x65096;\n          puVar27[-3] = 0x8ad;\n          puVar27[-4] = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa294f;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }" if (parenthesized_expression "((uint)((int)local_84 - (int)ppSVar6 >> 2) <= uVar24)" ( (binary_expression "(uint)((int)local_84 - (int)ppSVar6 >> 2) <= uVar24" (call_expression "(uint)((int)local_84 - (int)ppSVar6 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_84 - (int)ppSVar6 >> 2)" ( (binary_expression "(int)local_84 - (int)ppSVar6 >> 2" (binary_expression "(int)local_84 - (int)ppSVar6" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppSVar6" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          puVar27[-2] = local_8c + -0x65096;\n          puVar27[-3] = 0x8ad;\n          puVar27[-4] = (int)local_8c + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa294f;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }" { (expression_statement "puVar27[-2] = local_8c + -0x65096;" (assignment_expression "puVar27[-2] = local_8c + -0x65096" (subscript_expression "puVar27[-2]" identifier [ number_literal ]) = (binary_expression "local_8c + -0x65096" identifier + number_literal)) ;) (expression_statement "puVar27[-3] = 0x8ad;" (assignment_expression "puVar27[-3] = 0x8ad" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar27[-4] = (int)local_8c + -0x19cc7b;" (assignment_expression "puVar27[-4] = (int)local_8c + -0x19cc7b" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_8c + -0x19cc7b" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "puVar27[-5] = 0xa294f;" (assignment_expression "puVar27[-5] = 0xa294f" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);" (call_expression "do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2])" identifier (argument_list "((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2])" ( (cast_expression "(char *)puVar27[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-4]" identifier [ number_literal ])) , (subscript_expression "puVar27[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar27[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-2]" identifier [ number_literal ])) ))) ;)) })) (expression_statement "src_id_1.first = (Relobj *)ppSVar6[uVar24];" (assignment_expression "src_id_1.first = (Relobj *)ppSVar6[uVar24]" (field_expression "src_id_1.first" identifier . field_identifier) = (cast_expression "(Relobj *)ppSVar6[uVar24]" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppSVar6[uVar24]" identifier [ identifier ]))) ;) (if_statement "if (src_id_1.first == (Relobj *)0x0) goto LAB_000a244f;" if (parenthesized_expression "(src_id_1.first == (Relobj *)0x0)" ( (binary_expression "src_id_1.first == (Relobj *)0x0" (field_expression "src_id_1.first" identifier . field_identifier) == (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a244f;" goto statement_identifier ;)) (if_statement "if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          puVar27[-3] = src_id_1.first;\n          puVar27[-4] = symtab;\n          puVar27[-5] = 0xa243a;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         ((Symbol_table *)puVar27[-4],(Symbol *)puVar27[-3]);\n        }" if (parenthesized_expression "((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0)" ( (binary_expression "(((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0" (parenthesized_expression "(((src_id_1.first)->super_Object).shnum_ & 0x100000)" ( (binary_expression "((src_id_1.first)->super_Object).shnum_ & 0x100000" (field_expression "((src_id_1.first)->super_Object).shnum_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          puVar27[-3] = src_id_1.first;\n          puVar27[-4] = symtab;\n          puVar27[-5] = 0xa243a;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         ((Symbol_table *)puVar27[-4],(Symbol *)puVar27[-3]);\n        }" { (expression_statement "puVar27[-3] = src_id_1.first;" (assignment_expression "puVar27[-3] = src_id_1.first" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = (field_expression "src_id_1.first" identifier . field_identifier)) ;) (expression_statement "puVar27[-4] = symtab;" (assignment_expression "puVar27[-4] = symtab" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-5] = 0xa243a;" (assignment_expression "puVar27[-5] = 0xa243a" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::" (assignment_expression "src_id_1.first =\n               (Relobj *)\n               gold" (field_expression "src_id_1.first" identifier . field_identifier) = (cast_expression "(Relobj *)\n               gold" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : : identifier : :) (expression_statement "resolve_forwards\n                         ((Symbol_table *)puVar27[-4],(Symbol *)puVar27[-3]);" (call_expression "resolve_forwards\n                         ((Symbol_table *)puVar27[-4],(Symbol *)puVar27[-3])" identifier (argument_list "((Symbol_table *)puVar27[-4],(Symbol *)puVar27[-3])" ( (cast_expression "(Symbol_table *)puVar27[-4]" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-4]" identifier [ number_literal ])) , (cast_expression "(Symbol *)puVar27[-3]" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-3]" identifier [ number_literal ])) ))) ;) })) (expression_statement "bVar33 = (((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0;" (assignment_expression "bVar33 = (((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0" identifier = (binary_expression "(((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0" (parenthesized_expression "(((src_id_1.first)->super_Object).shnum_ & 0x70000)" ( (binary_expression "((src_id_1.first)->super_Object).shnum_ & 0x70000" (field_expression "((src_id_1.first)->super_Object).shnum_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar33) {\n          local_94 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          bVar33 = ((uint)local_94->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_end_of_storage & 1) == 0;\n          if (bVar33) {\n            bVar23 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5;\n            local_88 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar33 = (bVar23 & 1) == 0;\n            local_a6 = bVar23 & 1;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (Relobj *)0x0;\n            local_94 = (Output_segment *)0x0;\n          }\n          pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_98 = (int)&local_90->first + (int)pRVar25;\n        }\n        else {\n          pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_a6 = 0;\n          local_88 = (Relobj *)0x0;\n          local_94 = (Output_segment *)0x0;\n          local_98 = (int)&local_90->first + (int)pRVar25;\n        }" if (parenthesized_expression "(bVar33)" ( identifier )) (compound_statement "{\n          local_94 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          bVar33 = ((uint)local_94->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_end_of_storage & 1) == 0;\n          if (bVar33) {\n            bVar23 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5;\n            local_88 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar33 = (bVar23 & 1) == 0;\n            local_a6 = bVar23 & 1;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (Relobj *)0x0;\n            local_94 = (Output_segment *)0x0;\n          }\n          pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_98 = (int)&local_90->first + (int)pRVar25;\n        }" { (expression_statement "local_94 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;" (assignment_expression "local_94 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment" identifier = (field_expression "((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment" (parenthesized_expression "((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)" ( (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((src_id_1.first)->super_Object).name_._M_string_length" & (field_expression "((src_id_1.first)->super_Object).name_._M_string_length" (field_expression "((src_id_1.first)->super_Object).name_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier))) )) -> field_identifier)) ;) (expression_statement "bVar33 = ((uint)local_94->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_end_of_storage & 1) == 0;" (assignment_expression "bVar33 = ((uint)local_94->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_end_of_storage & 1) == 0" identifier = (binary_expression "((uint)local_94->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_end_of_storage & 1) == 0" (parenthesized_expression "((uint)local_94->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_end_of_storage & 1)" ( (ERROR "(uint)local_94->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::" (comma_expression "(uint)local_94->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std" (binary_expression "(uint)local_94->output_lists_[3].\n                          super__Vector_base<gold::Output_data*" (binary_expression "(uint)local_94->output_lists_[3].\n                          super__Vector_base<gold" (cast_expression "(uint)local_94->output_lists_[3].\n                          super__Vector_base" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_94->output_lists_[3].\n                          super__Vector_base" (subscript_expression "local_94->output_lists_[3]" (field_expression "local_94->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Output_data*>_>\n                          ._M_impl._M_end_of_storage & 1" (field_expression "Output_data*>_>\n                          ._M_impl._M_end_of_storage" (field_expression "Output_data*>_>\n                          ._M_impl" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar33) {\n            bVar23 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5;\n            local_88 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar33 = (bVar23 & 1) == 0;\n            local_a6 = bVar23 & 1;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (Relobj *)0x0;\n            local_94 = (Output_segment *)0x0;\n          }" if (parenthesized_expression "(bVar33)" ( identifier )) (compound_statement "{\n            bVar23 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5;\n            local_88 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar33 = (bVar23 & 1) == 0;\n            local_a6 = bVar23 & 1;\n          }" { (expression_statement "bVar23 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5;" (assignment_expression "bVar23 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5" identifier = (binary_expression "*(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5" (pointer_expression "*(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3)" * (cast_expression "(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((src_id_1.first)->super_Object).shnum_ + 3)" ( (binary_expression "(int)&((src_id_1.first)->super_Object).shnum_ + 3" (cast_expression "(int)&((src_id_1.first)->super_Object).shnum_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((src_id_1.first)->super_Object).shnum_" & (field_expression "((src_id_1.first)->super_Object).shnum_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) )))) >> number_literal)) ;) (expression_statement "local_88 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;" (assignment_expression "local_88 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity" identifier = (cast_expression "(Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity" (field_expression "((src_id_1.first)->super_Object).name_.field_2" (field_expression "((src_id_1.first)->super_Object).name_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "bVar33 = (bVar23 & 1) == 0;" (assignment_expression "bVar33 = (bVar23 & 1) == 0" identifier = (binary_expression "(bVar23 & 1) == 0" (parenthesized_expression "(bVar23 & 1)" ( (binary_expression "bVar23 & 1" identifier & number_literal) )) == number_literal)) ;) (expression_statement "local_a6 = bVar23 & 1;" (assignment_expression "local_a6 = bVar23 & 1" identifier = (binary_expression "bVar23 & 1" identifier & number_literal)) ;) }) (else_clause "else {\n            local_a6 = 0;\n            local_88 = (Relobj *)0x0;\n            local_94 = (Output_segment *)0x0;\n          }" else (compound_statement "{\n            local_a6 = 0;\n            local_88 = (Relobj *)0x0;\n            local_94 = (Output_segment *)0x0;\n          }" { (expression_statement "local_a6 = 0;" (assignment_expression "local_a6 = 0" identifier = number_literal) ;) (expression_statement "local_88 = (Relobj *)0x0;" (assignment_expression "local_88 = (Relobj *)0x0" identifier = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_94 = (Output_segment *)0x0;" (assignment_expression "local_94 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_;" (assignment_expression "pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_" identifier = (cast_expression "(Relobj *)((src_id_1.first)->super_Object).xindex_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((src_id_1.first)->super_Object).xindex_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "local_98 = (int)&local_90->first + (int)pRVar25;" (assignment_expression "local_98 = (int)&local_90->first + (int)pRVar25" identifier = (binary_expression "(int)&local_90->first + (int)pRVar25" (cast_expression "(int)&local_90->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_90->first" & (field_expression "local_90->first" identifier -> field_identifier))) + (cast_expression "(int)pRVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_a6 = 0;\n          local_88 = (Relobj *)0x0;\n          local_94 = (Output_segment *)0x0;\n          local_98 = (int)&local_90->first + (int)pRVar25;\n        }" else (compound_statement "{\n          pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_a6 = 0;\n          local_88 = (Relobj *)0x0;\n          local_94 = (Output_segment *)0x0;\n          local_98 = (int)&local_90->first + (int)pRVar25;\n        }" { (expression_statement "pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_;" (assignment_expression "pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_" identifier = (cast_expression "(Relobj *)((src_id_1.first)->super_Object).xindex_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((src_id_1.first)->super_Object).xindex_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "local_a6 = 0;" (assignment_expression "local_a6 = 0" identifier = number_literal) ;) (expression_statement "local_88 = (Relobj *)0x0;" (assignment_expression "local_88 = (Relobj *)0x0" identifier = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_94 = (Output_segment *)0x0;" (assignment_expression "local_94 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = (int)&local_90->first + (int)pRVar25;" (assignment_expression "local_98 = (int)&local_90->first + (int)pRVar25" identifier = (binary_expression "(int)&local_90->first + (int)pRVar25" (cast_expression "(int)&local_90->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_90->first" & (field_expression "local_90->first" identifier -> field_identifier))) + (cast_expression "(int)pRVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object" identifier = (field_expression "((src_id_1.first)->super_Object)._vptr_Object" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar20 = 8;" (assignment_expression "iVar20 = 8" identifier = number_literal) ;) (expression_statement "pbVar28 = (byte *)((int)local_8c + -0x19ca26);" (assignment_expression "pbVar28 = (byte *)((int)local_8c + -0x19ca26)" identifier = (cast_expression "(byte *)((int)local_8c + -0x19ca26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + -0x19ca26)" ( (binary_expression "(int)local_8c + -0x19ca26" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pp_Var30 = pp_Var16;" (assignment_expression "pp_Var30 = pp_Var16" identifier = identifier) ;) (do_statement "do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar31 = *pbVar28 < *(byte *)pp_Var30;\n          bVar33 = *pbVar28 == *(byte *)pp_Var30;\n          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n          pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);\n        } while (bVar33);" do (compound_statement "{\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar31 = *pbVar28 < *(byte *)pp_Var30;\n          bVar33 = *pbVar28 == *(byte *)pp_Var30;\n          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n          pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);\n        }" { (if_statement "if (iVar20 == 0) break;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar31 = *pbVar28 < *(byte *)pp_Var30;" (assignment_expression "bVar31 = *pbVar28 < *(byte *)pp_Var30" identifier = (binary_expression "*pbVar28 < *(byte *)pp_Var30" (pointer_expression "*pbVar28" * identifier) < (pointer_expression "*(byte *)pp_Var30" * (cast_expression "(byte *)pp_Var30" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar33 = *pbVar28 == *(byte *)pp_Var30;" (assignment_expression "bVar33 = *pbVar28 == *(byte *)pp_Var30" identifier = (binary_expression "*pbVar28 == *(byte *)pp_Var30" (pointer_expression "*pbVar28" * identifier) == (pointer_expression "*(byte *)pp_Var30" * (cast_expression "(byte *)pp_Var30" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);" (assignment_expression "pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var30 + (uint)bVar34 * -2 + 1)" ( (binary_expression "(int)pp_Var30 + (uint)bVar34 * -2 + 1" (binary_expression "(int)pp_Var30 + (uint)bVar34 * -2" (cast_expression "(int)pp_Var30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar33)" ( identifier )) ;) (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;) (expression_statement "bVar33 = (!bVar31 && !bVar33) == bVar31;" (assignment_expression "bVar33 = (!bVar31 && !bVar33) == bVar31" identifier = (binary_expression "(!bVar31 && !bVar33) == bVar31" (parenthesized_expression "(!bVar31 && !bVar33)" ( (binary_expression "!bVar31 && !bVar33" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar33" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar33) {\n          local_ac = pp_Var16 + 2;\n        }\n        else {\n          iVar20 = 7;\n          pbVar28 = (byte *)((int)local_8c + -0x19ca1d);\n          pp_Var30 = pp_Var16;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar28 < *(byte *)pp_Var30;\n            bVar33 = *pbVar28 == *(byte *)pp_Var30;\n            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n            pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if ((!bVar32 && !bVar33) != bVar32) {\n            pp_Var16 = local_ac;\n          }\n          local_ac = pp_Var16;\n        }" if (parenthesized_expression "(bVar33)" ( identifier )) (compound_statement "{\n          local_ac = pp_Var16 + 2;\n        }" { (expression_statement "local_ac = pp_Var16 + 2;" (assignment_expression "local_ac = pp_Var16 + 2" identifier = (binary_expression "pp_Var16 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar20 = 7;\n          pbVar28 = (byte *)((int)local_8c + -0x19ca1d);\n          pp_Var30 = pp_Var16;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar28 < *(byte *)pp_Var30;\n            bVar33 = *pbVar28 == *(byte *)pp_Var30;\n            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n            pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if ((!bVar32 && !bVar33) != bVar32) {\n            pp_Var16 = local_ac;\n          }\n          local_ac = pp_Var16;\n        }" else (compound_statement "{\n          iVar20 = 7;\n          pbVar28 = (byte *)((int)local_8c + -0x19ca1d);\n          pp_Var30 = pp_Var16;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar28 < *(byte *)pp_Var30;\n            bVar33 = *pbVar28 == *(byte *)pp_Var30;\n            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n            pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if ((!bVar32 && !bVar33) != bVar32) {\n            pp_Var16 = local_ac;\n          }\n          local_ac = pp_Var16;\n        }" { (expression_statement "iVar20 = 7;" (assignment_expression "iVar20 = 7" identifier = number_literal) ;) (expression_statement "pbVar28 = (byte *)((int)local_8c + -0x19ca1d);" (assignment_expression "pbVar28 = (byte *)((int)local_8c + -0x19ca1d)" identifier = (cast_expression "(byte *)((int)local_8c + -0x19ca1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + -0x19ca1d)" ( (binary_expression "(int)local_8c + -0x19ca1d" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pp_Var30 = pp_Var16;" (assignment_expression "pp_Var30 = pp_Var16" identifier = identifier) ;) (do_statement "do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar28 < *(byte *)pp_Var30;\n            bVar33 = *pbVar28 == *(byte *)pp_Var30;\n            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n            pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);\n          } while (bVar33);" do (compound_statement "{\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar28 < *(byte *)pp_Var30;\n            bVar33 = *pbVar28 == *(byte *)pp_Var30;\n            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n            pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);\n          }" { (if_statement "if (iVar20 == 0) break;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar32 = *pbVar28 < *(byte *)pp_Var30;" (assignment_expression "bVar32 = *pbVar28 < *(byte *)pp_Var30" identifier = (binary_expression "*pbVar28 < *(byte *)pp_Var30" (pointer_expression "*pbVar28" * identifier) < (pointer_expression "*(byte *)pp_Var30" * (cast_expression "(byte *)pp_Var30" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar33 = *pbVar28 == *(byte *)pp_Var30;" (assignment_expression "bVar33 = *pbVar28 == *(byte *)pp_Var30" identifier = (binary_expression "*pbVar28 == *(byte *)pp_Var30" (pointer_expression "*pbVar28" * identifier) == (pointer_expression "*(byte *)pp_Var30" * (cast_expression "(byte *)pp_Var30" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);" (assignment_expression "pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var30 + (uint)bVar34 * -2 + 1)" ( (binary_expression "(int)pp_Var30 + (uint)bVar34 * -2 + 1" (binary_expression "(int)pp_Var30 + (uint)bVar34 * -2" (cast_expression "(int)pp_Var30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar33)" ( identifier )) ;) (expression_statement "pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);" (assignment_expression "pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var16 + 7)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var16 + 7)" ( (binary_expression "(int)pp_Var16 + 7" (cast_expression "(int)pp_Var16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((!bVar32 && !bVar33) != bVar32) {\n            pp_Var16 = local_ac;\n          }" if (parenthesized_expression "((!bVar32 && !bVar33) != bVar32)" ( (binary_expression "(!bVar32 && !bVar33) != bVar32" (parenthesized_expression "(!bVar32 && !bVar33)" ( (binary_expression "!bVar32 && !bVar33" (unary_expression "!bVar32" ! identifier) && (unary_expression "!bVar33" ! identifier)) )) != identifier) )) (compound_statement "{\n            pp_Var16 = local_ac;\n          }" { (expression_statement "pp_Var16 = local_ac;" (assignment_expression "pp_Var16 = local_ac" identifier = identifier) ;) })) (expression_statement "local_ac = pp_Var16;" (assignment_expression "local_ac = pp_Var16" identifier = identifier) ;) }))) if (parenthesized_expression "(local_a5 != '\0')" ( (binary_expression "local_a5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) { (if_statement "if (local_a6 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_94;\n            src_id.second = (uint)local_88;\n          }" if (parenthesized_expression "(local_a6 == 0)" ( (binary_expression "local_a6 == 0" identifier == number_literal) )) (compound_statement "{\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\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.second = 0;" (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n            src_id.first = (Relobj *)local_94;\n            src_id.second = (uint)local_88;\n          }" else (compound_statement "{\n            src_id.first = (Relobj *)local_94;\n            src_id.second = (uint)local_88;\n          }" { (expression_statement "src_id.first = (Relobj *)local_94;" (assignment_expression "src_id.first = (Relobj *)local_94" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_94" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = (uint)local_88;" (assignment_expression "src_id.second = (uint)local_88" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)local_88" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "puVar27[-3] = (Icf *)&src_id;" (assignment_expression "puVar27[-3] = (Icf *)&src_id" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "puVar27[-4] = local_9c;" (assignment_expression "puVar27[-4] = local_9c" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_84 = (Icf *)&src_id;" (assignment_expression "local_84 = (Icf *)&src_id" identifier = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "puVar27[-5] = 0xa22ed;" (assignment_expression "puVar27[-5] = 0xa22ed" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = 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) : :) (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > ( ( (ERROR "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                      *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]);\n          ppSVar6 = (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar6 ==\n              (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            puVar27[-2] = &src_id_1;\n            puVar27[-3] = ppSVar6;\n            puVar27[-4] = local_a0;\n            puVar27[-5] = 0xa2743;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                       (Symbol **)puVar27[-3],(Symbol **)puVar27[-2]);\n          }\n          else {\n            *ppSVar6 = (Symbol *)src_id_1.first;\n            (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar6 + 1;\n          }\n          puVar27[-3] = local_84;\n          puVar27[-4] = local_b8;\n          local_2c = local_90;\n          src_id.first = pRVar25;\n          src_id.second = 0;\n          local_28._M_p = (pointer)((int)local_90 >> 0x1f);\n          puVar27[-5] = 0xa2338;\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::" (comma_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                      *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3])" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                      *)puVar27[-4]" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "vector<std::pair<gold" (binary_expression "vector<std" identifier < 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) > identifier) > (pointer_expression "*)puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ]))) , (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3])" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "*)puVar27[-3]" * (ERROR ")" )) (subscript_expression "puVar27[-3]" identifier [ number_literal ]))) ))) ; (call_expression "ppSVar6 = (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar6 ==\n              (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage)" (assignment_expression "ppSVar6 = (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish" identifier = (field_expression "(local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish" (field_expression "(local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl" (parenthesized_expression "(local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_a0->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_a0->super__Vector_base<gold" (field_expression "local_a0->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)) (ERROR ";\n          if" ; if) (argument_list "(ppSVar6 ==\n              (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage)" ( (binary_expression "ppSVar6 ==\n              (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage" identifier == (field_expression "(local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage" (field_expression "(local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_a0->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_a0->super__Vector_base<gold" (field_expression "local_a0->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            puVar27[-2] = &src_id_1;\n            puVar27[-3] = ppSVar6;\n            puVar27[-4] = local_a0;\n            puVar27[-5] = 0xa2743;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                       (Symbol **)puVar27[-3],(Symbol **)puVar27[-2]);\n          }" { (expression_statement "puVar27[-2] = &src_id_1;" (assignment_expression "puVar27[-2] = &src_id_1" (subscript_expression "puVar27[-2]" identifier [ number_literal ]) = (pointer_expression "&src_id_1" & identifier)) ;) (expression_statement "puVar27[-3] = ppSVar6;" (assignment_expression "puVar27[-3] = ppSVar6" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-4] = local_a0;" (assignment_expression "puVar27[-4] = local_a0" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-5] = 0xa2743;" (assignment_expression "puVar27[-5] = 0xa2743" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = number_literal) ;) (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&>\n                      ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                       (Symbol **)puVar27[-3],(Symbol **)puVar27[-2]);" (binary_expression "Symbol*_const&>\n                      ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                       (Symbol **)puVar27[-3],(Symbol **)puVar27[-2])" (binary_expression "Symbol*_const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                       (Symbol **)puVar27[-3],(Symbol **)puVar27[-2])" ( (parenthesized_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                       (Symbol **)puVar27[-3],(Symbol **)puVar27[-2])" ( (comma_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],\n                       (Symbol **)puVar27[-3],(Symbol **)puVar27[-2]" (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4]" (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "vector<gold::Symbol*,_std::allocator<gold" (binary_expression "vector<gold::Symbol*,_std" (binary_expression "vector<gold" identifier < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > (pointer_expression "*)puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ]))) , (comma_expression "(Symbol **)puVar27[-3],(Symbol **)puVar27[-2]" (cast_expression "(Symbol **)puVar27[-3]" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar27[-3]" identifier [ number_literal ])) , (cast_expression "(Symbol **)puVar27[-2]" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar27[-2]" identifier [ number_literal ])))) )) ))) ;) }) else (compound_statement "{\n            *ppSVar6 = (Symbol *)src_id_1.first;\n            (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar6 + 1;\n          }" { (expression_statement "*ppSVar6 = (Symbol *)src_id_1.first;" (assignment_expression "*ppSVar6 = (Symbol *)src_id_1.first" (pointer_expression "*ppSVar6" * identifier) = (cast_expression "(Symbol *)src_id_1.first" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "src_id_1.first" identifier . field_identifier))) ;) (expression_statement "(local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar6 + 1;" (assignment_expression "(local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar6 + 1" (field_expression "(local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish" (field_expression "(local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_a0->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_a0->super__Vector_base<gold" (field_expression "local_a0->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 "ppSVar6 + 1" identifier + number_literal)) ;) }) (assignment_expression "puVar27[-3] = local_84" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = identifier) ; (assignment_expression "puVar27[-4] = local_b8" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ; (assignment_expression "local_2c = local_90" identifier = identifier) ; (assignment_expression "src_id.first = pRVar25" (field_expression "src_id.first" identifier . field_identifier) = identifier) ; (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ; (assignment_expression "local_28._M_p = (pointer)((int)local_90 >> 0x1f)" (field_expression "local_28._M_p" identifier . field_identifier) = (call_expression "(pointer)((int)local_90 >> 0x1f)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)local_90 >> 0x1f)" ( (binary_expression "(int)local_90 >> 0x1f" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ; (assignment_expression "puVar27[-5] = 0xa2338" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = number_literal) ; identifier : : (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)) : :) (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_" identifier > identifier) > ( (subscript_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                      *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3]);\n          src_id.second = 0;\n          uVar24 = *(uint *)prelocs;\n          puVar4 = (local_a4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = (Relobj *)\n                         (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                         uVar24 << 0x18);\n          if (puVar4 == (local_a4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            puVar27[-2] = local_84;\n            puVar27[-3] = puVar4;\n            puVar27[-4] = local_a4;\n            puVar27[-5] = 0xa2702;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                       puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);\n          }\n          else {\n            *(Relobj **)puVar4 = src_id.first;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_a4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          puVar27[-3] = &dst_id;\n          puVar27[-4] = local_bc;\n          puVar27[-5] = 0xa2380;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n            ::\n            _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                      ((_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                        *)puVar27[-4]" (parenthesized_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                      *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3]);\n          src_id.second = 0;\n          uVar24 = *(uint *)prelocs;\n          puVar4 = (local_a4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = (Relobj *)\n                         (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                         uVar24 << 0x18);\n          if (puVar4 == (local_a4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            puVar27[-2] = local_84;\n            puVar27[-3] = puVar4;\n            puVar27[-4] = local_a4;\n            puVar27[-5] = 0xa2702;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                       puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);\n          }\n          else {\n            *(Relobj **)puVar4 = src_id.first;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_a4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          puVar27[-3] = &dst_id;\n          puVar27[-4] = local_bc;\n          puVar27[-5] = 0xa2380;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n            ::\n            _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                      ((_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                        *)" ( (ERROR "vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                      *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3]);\n          src_id.second = 0;\n          uVar24 = *(uint *)prelocs;\n          puVar4 = (local_a4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = (Relobj *)\n                         (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                         uVar24 << 0x18);\n          if (puVar4 == (local_a4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            puVar27[-2] = local_84;\n            puVar27[-3] = puVar4;\n            puVar27[-4] = local_a4;\n            puVar27[-5] = 0xa2702;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                       puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);\n          }\n          else {\n            *(Relobj **)puVar4 = src_id.first;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_a4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          puVar27[-3] = &dst_id;\n          puVar27[-4] = local_bc;\n          puVar27[-5] = 0xa2380;\n          std::vector<unsigned_int,_std::" (comma_expression "vector<std::pair<long_long_int,_long_long_int>,_std" (binary_expression "vector<std::pair<long_long_int" (binary_expression "vector<std" identifier < identifier) (ERROR "::pair" : : 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                      *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3])" (binary_expression "pair<long_long_int" identifier < identifier) , (comma_expression "_long_long_int>_>_>\n                      *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3])" (binary_expression "_long_long_int>_>_>\n                      *)puVar27[-4]" (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier) > (pointer_expression "*)puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ]))) , (parenthesized_expression "(pair<long_long_int,_long_long_int> *)puVar27[-3])" ( (comma_expression "pair<long_long_int,_long_long_int> *)puVar27[-3]" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int> *)puVar27[-3]" identifier > (pointer_expression "*)puVar27[-3]" * (ERROR ")" )) (subscript_expression "puVar27[-3]" identifier [ number_literal ])))) )))) ; (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ; (assignment_expression "uVar24 = *(uint *)prelocs" identifier = (pointer_expression "*(uint *)prelocs" * (cast_expression "(uint *)prelocs" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ; (assignment_expression "puVar4 = (local_a4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" identifier = (field_expression "(local_a4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" (field_expression "(local_a4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl" (parenthesized_expression "(local_a4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )" ( (ERROR "local_a4->\n                   super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_a4->\n                   super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_a4->\n                   super__Vector_base<long_long_unsigned_int" (field_expression "local_a4->\n                   super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_>" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ; (call_expression "src_id.first = (Relobj *)\n                         (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                         uVar24 << 0x18);\n          if (puVar4 == (local_a4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage)" (assignment_expression "src_id.first = (Relobj *)\n                         (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                         uVar24 << 0x18)" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)\n                         (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                         uVar24 << 0x18)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                         uVar24 << 0x18)" ( (binary_expression "uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |\n                         uVar24 << 0x18" (binary_expression "uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8" (binary_expression "uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8" (binary_expression "uVar24 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar24 & 0xff0000) >> 8" (parenthesized_expression "(uVar24 & 0xff0000)" ( (binary_expression "uVar24 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff00) << 8" (parenthesized_expression "(uVar24 & 0xff00)" ( (binary_expression "uVar24 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar24 << 0x18" identifier << number_literal)) )))) (ERROR ";\n          if" ; if) (argument_list "(puVar4 == (local_a4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage)" ( (binary_expression "puVar4 == (local_a4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage" identifier == (field_expression "(local_a4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage" (field_expression "(local_a4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl" (parenthesized_expression "(local_a4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )" ( (ERROR "local_a4->\n                        super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_a4->\n                        super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_a4->\n                        super__Vector_base<long_long_unsigned_int" (field_expression "local_a4->\n                        super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_>" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ))) (compound_statement "{\n            puVar27[-2] = local_84;\n            puVar27[-3] = puVar4;\n            puVar27[-4] = local_a4;\n            puVar27[-5] = 0xa2702;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                       puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);\n          }" { (expression_statement "puVar27[-2] = local_84;" (assignment_expression "puVar27[-2] = local_84" (subscript_expression "puVar27[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-3] = puVar4;" (assignment_expression "puVar27[-3] = puVar4" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-4] = local_a4;" (assignment_expression "puVar27[-4] = local_a4" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-5] = 0xa2702;" (assignment_expression "puVar27[-5] = 0xa2702" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                       puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);" statement_identifier (ERROR "::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>:" : : (comma_expression "vector<long_long_unsigned_int,_std" (binary_expression "vector<long_long_unsigned_int" identifier < identifier) , identifier) : : (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > :) : (expression_statement "_M_realloc_insert<long_long_unsigned_int_const&>\n                      ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                       puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);" (binary_expression "_M_realloc_insert<long_long_unsigned_int_const&>\n                      ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                       puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2])" (binary_expression "_M_realloc_insert<long_long_unsigned_int_const" identifier < identifier) (ERROR "&" &) > (parenthesized_expression "((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                       puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2])" ( (parenthesized_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)\n                       puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2])" ( (ERROR "vector<long_long_unsigned_int,_std::" (comma_expression "vector<long_long_unsigned_int,_std" (binary_expression "vector<long_long_unsigned_int" identifier < identifier) , identifier) : :) (comma_expression "allocator<long_long_unsigned_int>_> *)\n                       puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]" (binary_expression "allocator<long_long_unsigned_int>_> *)\n                       puVar27[-4]" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > (pointer_expression "*)\n                       puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ]))) , (comma_expression "(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]" (cast_expression "(ulonglong *)puVar27[-3]" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-3]" identifier [ number_literal ])) , (cast_expression "(ulonglong *)puVar27[-2]" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-2]" identifier [ number_literal ])))) )) ))) ;)) }) else (compound_statement "{\n            *(Relobj **)puVar4 = src_id.first;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_a4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }" { (expression_statement "*(Relobj **)puVar4 = src_id.first;" (assignment_expression "*(Relobj **)puVar4 = src_id.first" (pointer_expression "*(Relobj **)puVar4" * (cast_expression "(Relobj **)puVar4" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar4 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar4 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar4 + 4)" * (cast_expression "(undefined4 *)((int)puVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 4)" ( (binary_expression "(int)puVar4 + 4" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(local_a4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;" (assignment_expression "(local_a4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1" (field_expression "(local_a4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish" (field_expression "(local_a4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl" (parenthesized_expression "(local_a4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>)" ( (ERROR "local_a4->\n            super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_a4->\n            super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_a4->\n            super__Vector_base<long_long_unsigned_int" (field_expression "local_a4->\n            super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_>" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }) (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)) ; (assignment_expression "puVar27[-3] = &dst_id" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = (pointer_expression "&dst_id" & identifier)) ; (assignment_expression "puVar27[-4] = local_bc" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ; (assignment_expression "puVar27[-5] = 0xa2380" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = number_literal) ; identifier : : (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : :) (comma_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std::pair<gold" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8;\n            std::\n            _Rb_tree<std" (assignment_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5] = 0xa24f8" (subscript_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1;\n            puVar27[-5]" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64;\n            local_64 = &src_id_1" (assignment_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4] = &local_64" (subscript_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a24e0:\n            puVar27[-4]" (call_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header;\n          if (p_Var7 == (_Base_ptr)0x0)" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent;\n          p_Var21 = &p_Var1->_M_header" (field_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                   _M_parent" (field_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl" (field_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t" (call_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88;\n          p_Var7 = (symtab->gc_->section_reloc_map_)" (assignment_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second = (uint)local_88" (field_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94;\n          dst_id.second" (assignment_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first = (Relobj *)local_94" (field_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx;\n          dst_id.first" (assignment_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second = data_shndx" (field_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n          src_id_1.second" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object;\n          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (assignment_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first = (Relobj *)object" (field_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false) {\n          src_id_1.first" (call_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);\n        }\n        if (((*local_b0)->options_->gc_sections_).value != false)" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2])" (binary_expression "allocator<unsigned_int>_>::emplace_back<unsigned_int" (binary_expression "allocator<unsigned_int>_>::emplace_back" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) > (parenthesized_expression "((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2])" ( (comma_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]" (binary_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e;\n          gold::do_gold_unreachable((char *)puVar27[-4]" (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5] = 0xa292e" (subscript_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n          puVar27[-5]" (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4] = (int)local_8c + -0x1a1d93" (subscript_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c;\n          puVar27[-4]" (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3] = 0x5c" (subscript_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf;\n          puVar27[-3]" (assignment_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2] = local_8c + -0x64ebf" (subscript_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0) {\n          puVar27[-2]" (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if ((*local_b0)->options_ == (General_options *)0x0)" (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]);\n        }\n        if (local_a6 == 0)" (parenthesized_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3])" ( (ERROR "vector<unsigned_int,_std::" (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : :) (comma_expression "allocator<unsigned_int>_> *)puVar27[-4],\n                     (uint *)puVar27[-3]" (binary_expression "allocator<unsigned_int>_> *)puVar27[-4]" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > (pointer_expression "*)puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ]))) , (cast_expression "(uint *)puVar27[-3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-3]" identifier [ number_literal ]))) )) (ERROR ";\n        }\n        if" ; } if) (argument_list "(local_a6 == 0)" ( (binary_expression "local_a6 == 0" identifier == number_literal) ))) (ERROR "goto LAB_000a20dc;\nLAB_000a20bc:\n        if" identifier identifier ; identifier : if) (argument_list "((*local_b0)->options_ == (General_options *)0x0)" ( (binary_expression "(*local_b0)->options_ == (General_options *)0x0" (field_expression "(*local_b0)->options_" (parenthesized_expression "(*local_b0)" ( (pointer_expression "*local_b0" * identifier) )) -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) (ERROR "{\n          puVar27" { identifier) [ number_literal ]) = (binary_expression "local_8c + -0x64ebf" identifier + number_literal)) (ERROR ";\n          puVar27" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n          puVar27" ; identifier) [ number_literal ]) = (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) (ERROR ";\n                    /* WARNING: Subroutine does not return */\n          puVar27" ; comment identifier) [ number_literal ]) = number_literal) (ERROR ";\n          gold::do_gold_unreachable((char" ; identifier : : identifier ( ( primitive_type) * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ])) , (comma_expression "puVar27[-3],(char *)puVar27[-2]" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar27[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-2]" identifier [ number_literal ])))) ))) (ERROR ";\n        }\n        if" ; } if) (argument_list "(((*local_b0)->options_->gc_sections_).value != false)" ( (binary_expression "((*local_b0)->options_->gc_sections_).value != false" (field_expression "((*local_b0)->options_->gc_sections_).value" (parenthesized_expression "((*local_b0)->options_->gc_sections_)" ( (field_expression "(*local_b0)->options_->gc_sections_" (field_expression "(*local_b0)->options_" (parenthesized_expression "(*local_b0)" ( (pointer_expression "*local_b0" * identifier) )) -> field_identifier) -> field_identifier) )) . field_identifier) != false) ))) (ERROR "{\n          src_id_1" { identifier) . field_identifier) = (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) (ERROR ";\n          p_Var1 =" ; identifier =) & (field_expression "(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(symtab->gc_->section_reloc_map_)._M_t._M_impl" (field_expression "(symtab->gc_->section_reloc_map_)._M_t" (parenthesized_expression "(symtab->gc_->section_reloc_map_)" ( (field_expression "symtab->gc_->section_reloc_map_" (field_expression "symtab->gc_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) (ERROR ";\n          src_id_1" ; identifier) . field_identifier) = identifier) (ERROR ";\n          dst_id" ; identifier) . field_identifier) = (cast_expression "(Relobj *)local_94" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) (ERROR ";\n          dst_id" ; identifier) . field_identifier) = (cast_expression "(uint)local_88" ( (type_descriptor "uint" type_identifier) ) identifier)) (ERROR ";\n          p_Var7 =" ; identifier =) (argument_list "(symtab->gc_->section_reloc_map_)" ( (field_expression "symtab->gc_->section_reloc_map_" (field_expression "symtab->gc_" identifier -> field_identifier) -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) (ERROR ";\n          p_Var21 =" ; identifier =) & (field_expression "p_Var1->_M_header" identifier -> field_identifier)) (ERROR ";\n          if" ; if) (argument_list "(p_Var7 == (_Base_ptr)0x0)" ( (binary_expression "p_Var7 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) ))) (ERROR "{\nLAB_000a24e0:\n            puVar27" { identifier : identifier) [ number_literal ]) = (pointer_expression "&local_64" & identifier)) (ERROR ";\n            local_64 =" ; identifier =) & identifier) (ERROR ";\n            puVar27" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n            std::\n            _Rb_tree" ; identifier : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::unordered_set" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Section_id_hash" : : identifier) , identifier) (ERROR "::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                      ((_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                        *" : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier : : identifier , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > identifier > identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier : : identifier , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > identifier > identifier > identifier > identifier > : : identifier < identifier : : identifier & , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > & > , identifier : : identifier < > identifier > ( ( identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier : : identifier , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier : : identifier , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > identifier > identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier : : identifier , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > identifier > identifier > identifier > identifier > *) )) (ERROR "puVar27" identifier) [ number_literal ]) , (cast_expression "(_Base_ptr)puVar27[-3]" ( (type_descriptor "_Base_ptr" type_identifier) ) (subscript_expression "puVar27[-3]" identifier [ number_literal ])) , ( (ERROR "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-2],\n                       (tuple<> *)puVar27[-1],(piecewise_construct_t *)*puVar27);\n            p_Var22 = local_70;\n          }\n          else" (comma_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-2],\n                       (tuple<> *)puVar27[-1],(piecewise_construct_t *)*puVar27)" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-2]" (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 "&> *)puVar27[-2]" & (ERROR ">" >) (pointer_expression "*)puVar27[-2]" * (ERROR ")" )) (subscript_expression "puVar27[-2]" identifier [ number_literal ])))) , (parenthesized_expression "(tuple<> *)puVar27[-1],(piecewise_construct_t *)*puVar27)" ( (comma_expression "tuple<> *)puVar27[-1],(piecewise_construct_t *)*puVar27" (binary_expression "tuple<> *)puVar27[-1]" identifier < (ERROR ">" >) (pointer_expression "*)puVar27[-1]" * (ERROR ")" )) (subscript_expression "puVar27[-1]" identifier [ number_literal ]))) , (cast_expression "(piecewise_construct_t *)*puVar27" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar27" * identifier))) ))) ; (assignment_expression "p_Var22 = local_70" identifier = identifier) ; } else) { (do_statement "do {\n              while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                     object <= (Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                p_Var7 = (p_Var22->_M_header)._M_left;\n                p_Var21 = &p_Var22->_M_header;\n                if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a24ca;\n              }\n              pp_Var2 = &(p_Var22->_M_header)._M_right;\n              p_Var7 = *pp_Var2;\n              p_Var22 = (_Rb_tree_header *)p_Var21;\n            } while (*pp_Var2 != (_Base_ptr)0x0);" do (ERROR "{\n              while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                     object <= (Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                p_Var7 = (p_Var22->_M_header)._M_left;\n                p_Var21 = &p_Var22->_M_header;\n                if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a24ca;\n              }\n              pp_Var2 = &(p_Var22->_M_header)._M_right;\n              p_Var7 = *pp_Var2;" (compound_statement "{\n              while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                     object <= (Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                p_Var7 = (p_Var22->_M_header)._M_left;\n                p_Var21 = &p_Var22->_M_header;\n                if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a24ca;\n              }" { (while_statement "while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                     object <= (Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                p_Var7 = (p_Var22->_M_header)._M_left;\n                p_Var21 = &p_Var22->_M_header;\n                if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a24ca;" while (parenthesized_expression "((p_Var22 = (_Rb_tree_header *)p_Var7,\n                     object <= (Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                p_Var7 = (p_Var22->_M_header)._M_left;\n                p_Var21 = &p_Var22->_M_header;\n                if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0)" ( (binary_expression "(p_Var22 = (_Rb_tree_header *)p_Var7,\n                     object <= (Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                p_Var7 = (p_Var22->_M_header)._M_left;\n                p_Var21 = &p_Var22->_M_header;\n                if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0" (field_expression "(p_Var22 = (_Rb_tree_header *)p_Var7,\n                     object <= (Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                p_Var7 = (p_Var22->_M_header)._M_left;\n                p_Var21 = &p_Var22->_M_header;\n                if ((p_Var22->_M_header)._M_left" (parenthesized_expression "(p_Var22 = (_Rb_tree_header *)p_Var7,\n                     object <= (Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                p_Var7 = (p_Var22->_M_header)._M_left;\n                p_Var21 = &p_Var22->_M_header;\n                if ((p_Var22->_M_header)" ( (comma_expression "p_Var22 = (_Rb_tree_header *)p_Var7,\n                     object <= (Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                p_Var7 = (p_Var22->_M_header)._M_left" (assignment_expression "p_Var22 = (_Rb_tree_header *)p_Var7" identifier = (cast_expression "(_Rb_tree_header *)p_Var7" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "object <= (Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                p_Var7 = (p_Var22->_M_header)._M_left" identifier <= (assignment_expression "(Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                p_Var7 = (p_Var22->_M_header)._M_left" (parenthesized_expression "(Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])))))" ( (comma_expression "Sized_relobj_file<32,_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                     ((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))" (binary_expression "_true> *)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var22 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var22 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var22 + 0x10)" ( (binary_expression "(int)p_Var22 + 0x10" (cast_expression "(int)p_Var22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) && (parenthesized_expression "((object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))" ( (parenthesized_expression "(object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])))" ( (binary_expression "object != (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))" identifier != (parenthesized_expression "(Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))" ( (comma_expression "Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])" (binary_expression "_true> *)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var22 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var22 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var22 + 0x10)" ( (binary_expression "(int)p_Var22 + 0x10" (cast_expression "(int)p_Var22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) || (parenthesized_expression "(data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])" ( (binary_expression "data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]" identifier <= (subscript_expression "((size_t *)((int)p_Var22 + 0x10))[1]" (parenthesized_expression "((size_t *)((int)p_Var22 + 0x10))" ( (cast_expression "(size_t *)((int)p_Var22 + 0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Var22 + 0x10)" ( (binary_expression "(int)p_Var22 + 0x10" (cast_expression "(int)p_Var22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) [ number_literal ])) )))) ))) )) )))) )) (ERROR "{\n                p_Var7" { identifier) = (field_expression "(p_Var22->_M_header)._M_left" (parenthesized_expression "(p_Var22->_M_header)" ( (field_expression "p_Var22->_M_header" identifier -> field_identifier) )) . field_identifier)))) (ERROR ";\n                p_Var21 = &p_Var22->_M_header;\n                if ((p_Var22->_M_header" ; identifier = & identifier -> identifier ; if ( ( identifier -> identifier) )) . field_identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_000a24ca;" goto statement_identifier ;)) }) (expression_statement "pp_Var2 = &(p_Var22->_M_header)._M_right;" (assignment_expression "pp_Var2 = &(p_Var22->_M_header)._M_right" identifier = (pointer_expression "&(p_Var22->_M_header)._M_right" & (field_expression "(p_Var22->_M_header)._M_right" (parenthesized_expression "(p_Var22->_M_header)" ( (field_expression "p_Var22->_M_header" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "p_Var7 = *pp_Var2;" (assignment_expression "p_Var7 = *pp_Var2" identifier = (pointer_expression "*pp_Var2" * identifier)) ;)) (expression_statement "p_Var22 = (_Rb_tree_header *)p_Var21;" (assignment_expression "p_Var22 = (_Rb_tree_header *)p_Var21" identifier = (cast_expression "(_Rb_tree_header *)p_Var21" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "}" }) while (parenthesized_expression "(*pp_Var2 != (_Base_ptr)0x0)" ( (binary_expression "*pp_Var2 != (_Base_ptr)0x0" (pointer_expression "*pp_Var2" * identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_000a24ca:\n            if (((p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\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                    ();" statement_identifier : (if_statement "if (((p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\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                    ();" if (parenthesized_expression "(((p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\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                    ()" ( (parenthesized_expression "((p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\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                    ()" ( (comma_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\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" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\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" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\n          std::\n          _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\n          std::\n          _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\n          std::\n          _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\n          std::\n          _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\n          std::\n          _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\n          std::\n          _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\n          std::\n          _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\n          std::\n          _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\n          std::\n          _Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\n          std::\n          _Hashtable<std::pair<gold" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521;\n          std::\n          _Hashtable<std" (assignment_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9] = 0xa2521" (subscript_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0;\n          puVar27[-9]" (assignment_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8] = local_c0" (subscript_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h;\n          puVar27[-8]" (assignment_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7] = __node_gen._M_h" (subscript_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id;\n          puVar27[-7]" (assignment_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6] = &dst_id" (subscript_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4;\n          puVar27[-6]" (assignment_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5] = local_c4" (subscript_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0;\n          puVar27[-5]" (assignment_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4] = 0" (subscript_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1;\n          puVar27[-4]" (assignment_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3] = 1" (subscript_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n          puVar27[-3]" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4)" (binary_expression "(p_Var1 == p_Var22) ||\n                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count))" (parenthesized_expression "(p_Var1 == p_Var22)" ( (binary_expression "p_Var1 == p_Var22" identifier == identifier) )) || (parenthesized_expression "(object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count))" ( (binary_expression "object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)" identifier < (parenthesized_expression "(Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)" ( (comma_expression "Sized_relobj_file<32,_true> *)p_Var22->_M_node_count" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)p_Var22->_M_node_count" identifier > (pointer_expression "*)p_Var22->_M_node_count" * (ERROR ")" )) (field_expression "p_Var22->_M_node_count" identifier -> field_identifier)))) ))) ))) || (assignment_expression "((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4)" (field_expression "((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;\n          }\n          __node_gen._M_h" (parenthesized_expression "((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1)))))" ( (parenthesized_expression "(object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))))" ( (binary_expression "object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1)))" identifier == (parenthesized_expression "(Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1)))" ( (comma_expression "Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)p_Var22->_M_node_count &&\n                (data_shndx < *(uint *)(p_Var22 + 1))" (binary_expression "_true> *)p_Var22->_M_node_count" identifier > (pointer_expression "*)p_Var22->_M_node_count" * (ERROR ")" )) (field_expression "p_Var22->_M_node_count" identifier -> field_identifier))) && (parenthesized_expression "(data_shndx < *(uint *)(p_Var22 + 1))" ( (binary_expression "data_shndx < *(uint *)(p_Var22 + 1)" identifier < (pointer_expression "*(uint *)(p_Var22 + 1)" * (cast_expression "(uint *)(p_Var22 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var22 + 1)" ( (binary_expression "p_Var22 + 1" identifier + number_literal) ))))) )))) ))) )) )) (ERROR "goto LAB_000a24e0;\n          }\n          __node_gen" identifier identifier ; } identifier) . field_identifier) = (cast_expression "(__hashtable_alloc *)((int)(p_Var22 + 1) + 4)" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var22 + 1) + 4)" ( (binary_expression "(int)(p_Var22 + 1) + 4" (cast_expression "(int)(p_Var22 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var22 + 1)" ( (binary_expression "p_Var22 + 1" identifier + number_literal) ))) + number_literal) ))))) (ERROR ";\n          puVar27" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n          puVar27" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n          puVar27" ; identifier) [ number_literal ]) = identifier) (ERROR ";\n          puVar27" ; identifier) [ number_literal ]) = (pointer_expression "&dst_id" & identifier)) (ERROR ";\n          puVar27" ; identifier) [ number_literal ]) = (field_expression "__node_gen._M_h" identifier . field_identifier)) (ERROR ";\n          puVar27" ; identifier) [ number_literal ]) = identifier) (ERROR ";\n          puVar27" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n          std::\n          _Hashtable" ; identifier : : 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) (ERROR "::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_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                    (" : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier < true , identifier , identifier > identifier > : : identifier < identifier : : identifier < identifier : : identifier * , identifier > & , identifier : : identifier : : identifier < identifier : : identifier < identifier : : identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier > identifier > identifier > identifier > () )) )) (expression_statement ";" ;))) (expression_statement "pTVar8 = (*local_b0)->target_;" (assignment_expression "pTVar8 = (*local_b0)->target_" identifier = (field_expression "(*local_b0)->target_" (parenthesized_expression "(*local_b0)" ( (pointer_expression "*local_b0" * identifier) )) -> field_identifier)) ;) (if_statement "if (pTVar8 == (Target *)0x0) {\n            puVar27[-3] = local_8c + -0x65082;\n            puVar27[-4] = 0x73;\n            puVar27[-5] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar27[-6] = 0xa296d;\n            gold::do_gold_unreachable((char *)puVar27[-5],puVar27[-4],(char *)puVar27[-3]);\n          }" if (parenthesized_expression "(pTVar8 == (Target *)0x0)" ( (binary_expression "pTVar8 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar27[-3] = local_8c + -0x65082;\n            puVar27[-4] = 0x73;\n            puVar27[-5] = (int)local_8c + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar27[-6] = 0xa296d;\n            gold::do_gold_unreachable((char *)puVar27[-5],puVar27[-4],(char *)puVar27[-3]);\n          }" { (expression_statement "puVar27[-3] = local_8c + -0x65082;" (assignment_expression "puVar27[-3] = local_8c + -0x65082" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = (binary_expression "local_8c + -0x65082" identifier + number_literal)) ;) (expression_statement "puVar27[-4] = 0x73;" (assignment_expression "puVar27[-4] = 0x73" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar27[-5] = (int)local_8c + -0x1a1d93;" (assignment_expression "puVar27[-5] = (int)local_8c + -0x1a1d93" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "puVar27[-6] = 0xa296d;" (assignment_expression "puVar27[-6] = 0xa296d" (subscript_expression "puVar27[-6]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar27[-5],puVar27[-4],(char *)puVar27[-3]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar27[-5],puVar27[-4],(char *)puVar27[-3]);" (call_expression "do_gold_unreachable((char *)puVar27[-5],puVar27[-4],(char *)puVar27[-3])" identifier (argument_list "((char *)puVar27[-5],puVar27[-4],(char *)puVar27[-3])" ( (cast_expression "(char *)puVar27[-5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-5]" identifier [ number_literal ])) , (subscript_expression "puVar27[-4]" identifier [ number_literal ]) , (cast_expression "(char *)puVar27[-3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-3]" identifier [ number_literal ])) ))) ;)) })) (expression_statement "ppuVar29 = (undefined **)pTVar8->_vptr_Target[0x41];" (assignment_expression "ppuVar29 = (undefined **)pTVar8->_vptr_Target[0x41]" identifier = (cast_expression "(undefined **)pTVar8->_vptr_Target[0x41]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "pTVar8->_vptr_Target[0x41]" (field_expression "pTVar8->_vptr_Target" identifier -> field_identifier) [ number_literal ]))) ;) (if_statement "if (ppuVar29 != local_8c + -0x1510f0) {\n            puVar27[-3] = local_98;\n            puVar27[-4] = local_88;\n            puVar27[-5] = local_94;\n            puVar27[-6] = data_shndx;\n            puVar27[-7] = object;\n            puVar27[-8] = symtab;\n            puVar27[-9] = pTVar8;\n            puVar27[-10] = 0xa26c1;\n            (*(code *)ppuVar29)();\n          }" if (parenthesized_expression "(ppuVar29 != local_8c + -0x1510f0)" ( (binary_expression "ppuVar29 != local_8c + -0x1510f0" identifier != (binary_expression "local_8c + -0x1510f0" identifier + number_literal)) )) (compound_statement "{\n            puVar27[-3] = local_98;\n            puVar27[-4] = local_88;\n            puVar27[-5] = local_94;\n            puVar27[-6] = data_shndx;\n            puVar27[-7] = object;\n            puVar27[-8] = symtab;\n            puVar27[-9] = pTVar8;\n            puVar27[-10] = 0xa26c1;\n            (*(code *)ppuVar29)();\n          }" { (expression_statement "puVar27[-3] = local_98;" (assignment_expression "puVar27[-3] = local_98" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-4] = local_88;" (assignment_expression "puVar27[-4] = local_88" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-5] = local_94;" (assignment_expression "puVar27[-5] = local_94" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-6] = data_shndx;" (assignment_expression "puVar27[-6] = data_shndx" (subscript_expression "puVar27[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-7] = object;" (assignment_expression "puVar27[-7] = object" (subscript_expression "puVar27[-7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-8] = symtab;" (assignment_expression "puVar27[-8] = symtab" (subscript_expression "puVar27[-8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-9] = pTVar8;" (assignment_expression "puVar27[-9] = pTVar8" (subscript_expression "puVar27[-9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-10] = 0xa26c1;" (assignment_expression "puVar27[-10] = 0xa26c1" (subscript_expression "puVar27[-10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)ppuVar29)();" (call_expression "(*(code *)ppuVar29)()" (parenthesized_expression "(*(code *)ppuVar29)" ( (pointer_expression "*(code *)ppuVar29" * (cast_expression "(code *)ppuVar29" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "pp_Var16 = local_ac;" (assignment_expression "pp_Var16 = local_ac" identifier = identifier) ;) (expression_statement "ppGVar26 = (General_options **)(puVar27 + -1);" (assignment_expression "ppGVar26 = (General_options **)(puVar27 + -1)" identifier = (cast_expression "(General_options **)(puVar27 + -1)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -1)" ( (binary_expression "puVar27 + -1" identifier + number_literal) )))) ;) if (parenthesized_expression "(local_ac != (_func_int_varargs **)0x0)" ( (binary_expression "local_ac != (_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_88 = (Relobj *)&local_2c;" (assignment_expression "local_88 = (Relobj *)&local_2c" identifier = (cast_expression "(Relobj *)&local_2c" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "pGVar9 = symtab->gc_;" (assignment_expression "pGVar9 = symtab->gc_" identifier = (field_expression "symtab->gc_" identifier -> field_identifier)) ;) (expression_statement "puVar27[-5] = local_ac;" (assignment_expression "puVar27[-5] = local_ac" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_84 = (Icf *)&src_id;" (assignment_expression "local_84 = (Icf *)&src_id" identifier = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "src_id.first = (Relobj *)&local_2c;" (assignment_expression "src_id.first = (Relobj *)&local_2c" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)&local_2c" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "puVar27[-6] = 0xa258d;" (assignment_expression "puVar27[-6] = 0xa258d" (subscript_expression "puVar27[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sVar17 = strlen((char *)puVar27[-5]);" (assignment_expression "sVar17 = strlen((char *)puVar27[-5])" identifier = (call_expression "strlen((char *)puVar27[-5])" identifier (argument_list "((char *)puVar27[-5])" ( (cast_expression "(char *)puVar27[-5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-5]" identifier [ number_literal ])) )))) ;) (expression_statement "pIVar12 = local_84;" (assignment_expression "pIVar12 = local_84" identifier = identifier) ;) (expression_statement "puVar27[-2] = 0;" (assignment_expression "puVar27[-2] = 0" (subscript_expression "puVar27[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar27[-3] = (byte *)((int)pp_Var16 + sVar17);" (assignment_expression "puVar27[-3] = (byte *)((int)pp_Var16 + sVar17)" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = (cast_expression "(byte *)((int)pp_Var16 + sVar17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_Var16 + sVar17)" ( (binary_expression "(int)pp_Var16 + sVar17" (cast_expression "(int)pp_Var16" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puVar27[-4] = pp_Var16;" (assignment_expression "puVar27[-4] = pp_Var16" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-5] = local_84;" (assignment_expression "puVar27[-5] = local_84" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-6] = 0xa259f;" (assignment_expression "puVar27[-6] = 0xa259f" (subscript_expression "puVar27[-6]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();" 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*>();" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*>()" * > ( )) ;)) (expression_statement "puVar27[-3] = pIVar12;" (assignment_expression "puVar27[-3] = pIVar12" (subscript_expression "puVar27[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-4] = &pGVar9->cident_sections_;" (assignment_expression "puVar27[-4] = &pGVar9->cident_sections_" (subscript_expression "puVar27[-4]" identifier [ number_literal ]) = (pointer_expression "&pGVar9->cident_sections_" & (field_expression "pGVar9->cident_sections_" identifier -> field_identifier))) ;) (expression_statement "puVar27[-5] = &local_80;" (assignment_expression "puVar27[-5] = &local_80" (subscript_expression "puVar27[-5]" identifier [ number_literal ]) = (pointer_expression "&local_80" & identifier)) ;) (expression_statement "puVar27[-6] = 0xa25b0;" (assignment_expression "puVar27[-6] = 0xa25b0" (subscript_expression "puVar27[-6]" identifier [ number_literal ]) = number_literal) ;) (ERROR "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::" (comma_expression "std::\n            _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std" identifier (ERROR "::\n            _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (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>_" (binary_expression "allocator<char" identifier < identifier) > 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" 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) : :) (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 ( ( (ERROR "_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                    *)puVar27[-5],\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)puVar27[-4])\n            ;\n            puVar13 = local_80;\n            if (src_id.first != local_88) {\n              puVar27[-6] = src_id.first;\n              puVar27[-7] = 0xa25d0;\n              operator_delete((void *)puVar27[-6]);\n            }\n            pGVar9 = symtab->gc_;\n            ppGVar26 = (General_options **)(puVar27 + -2);\n            if ((_Rb_tree_header *)puVar13 !=\n                &(pGVar9->cident_sections_)._M_t._M_impl.super__Rb_tree_header)" (binary_expression "_Rb_tree<std" identifier < identifier) : : identifier : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (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>_>,_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) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" 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>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>_>_>,_std" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (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>_>,_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) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" 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>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>_>_>_>,_std" (binary_expression "_unsigned_int>_>_>_>_" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : identifier : : (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>_>_>,_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) : : identifier : : (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>_>,_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) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" 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>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (comma_expression "_unsigned_int>_>_>_>_>_>\n                    *)puVar27[-5],\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)puVar27[-4])" (binary_expression "_unsigned_int>_>_>_>_>_>\n                    *)puVar27[-5]" (binary_expression "_unsigned_int>_>_>_>_>_" (binary_expression "_unsigned_int>_>_>_>_" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > identifier) > identifier) > (pointer_expression "*)puVar27[-5]" * (ERROR ")" )) (subscript_expression "puVar27[-5]" identifier [ number_literal ]))) , (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)puVar27[-4])" ( (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>_> *)puVar27[-4]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*)puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ]))) ))) ; (call_expression "puVar13 = local_80;\n            if (src_id.first != local_88)" (assignment_expression "puVar13 = local_80" identifier = identifier) (ERROR ";\n            if" ; if) (argument_list "(src_id.first != local_88)" ( (binary_expression "src_id.first != local_88" (field_expression "src_id.first" identifier . field_identifier) != identifier) ))) (compound_statement "{\n              puVar27[-6] = src_id.first;\n              puVar27[-7] = 0xa25d0;\n              operator_delete((void *)puVar27[-6]);\n            }" { (expression_statement "puVar27[-6] = src_id.first;" (assignment_expression "puVar27[-6] = src_id.first" (subscript_expression "puVar27[-6]" identifier [ number_literal ]) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "puVar27[-7] = 0xa25d0;" (assignment_expression "puVar27[-7] = 0xa25d0" (subscript_expression "puVar27[-7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "operator_delete((void *)puVar27[-6]);" (call_expression "operator_delete((void *)puVar27[-6])" identifier (argument_list "((void *)puVar27[-6])" ( (cast_expression "(void *)puVar27[-6]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-6]" identifier [ number_literal ])) ))) ;) }) (assignment_expression "pGVar9 = symtab->gc_" identifier = (field_expression "symtab->gc_" identifier -> field_identifier)) ; (call_expression "ppGVar26 = (General_options **)(puVar27 + -2);\n            if ((_Rb_tree_header *)puVar13 !=\n                &(pGVar9->cident_sections_)._M_t._M_impl.super__Rb_tree_header)" (assignment_expression "ppGVar26 = (General_options **)(puVar27 + -2)" identifier = (cast_expression "(General_options **)(puVar27 + -2)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -2)" ( (binary_expression "puVar27 + -2" identifier + number_literal) )))) (ERROR ";\n            if" ; if) (argument_list "((_Rb_tree_header *)puVar13 !=\n                &(pGVar9->cident_sections_)._M_t._M_impl.super__Rb_tree_header)" ( (binary_expression "(_Rb_tree_header *)puVar13 !=\n                &(pGVar9->cident_sections_)._M_t._M_impl.super__Rb_tree_header" (cast_expression "(_Rb_tree_header *)puVar13" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (pointer_expression "&(pGVar9->cident_sections_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(pGVar9->cident_sections_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar9->cident_sections_)._M_t._M_impl" (field_expression "(pGVar9->cident_sections_)._M_t" (parenthesized_expression "(pGVar9->cident_sections_)" ( (field_expression "pGVar9->cident_sections_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) )))) (compound_statement "{\n              p_Var1 = &(pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n              src_id.first = (Relobj *)object;\n              src_id.second = data_shndx;\n              p_Var7 = (pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                       _M_parent;\n              p_Var21 = &p_Var1->_M_header;\n              if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a2640:\n                puVar27[-6] = &local_60;\n                local_60 = local_84;\n                puVar27[-7] = 0xa2658;\n                std::\n                _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                ::\n                _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                          ((_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                            *)puVar27[-6],(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4);\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 != local_c8) {\n    *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa278a;\n    operator_delete(*(void **)((int)ppGVar26 + -0x10));\n  }\n  return;\n}" { (expression_statement "p_Var1 = &(pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var1 = &(pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" identifier = (pointer_expression "&(pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar9->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar9->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar9->section_reloc_map_)" ( (field_expression "pGVar9->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "src_id.first = (Relobj *)object;" (assignment_expression "src_id.first = (Relobj *)object" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = data_shndx;" (assignment_expression "src_id.second = data_shndx" (field_expression "src_id.second" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var7 = (pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                       _M_parent;" (assignment_expression "p_Var7 = (pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                       _M_parent" identifier = (field_expression "(pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                       _M_parent" (field_expression "(pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar9->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar9->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar9->section_reloc_map_)" ( (field_expression "pGVar9->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var21 = &p_Var1->_M_header;" (assignment_expression "p_Var21 = &p_Var1->_M_header" identifier = (pointer_expression "&p_Var1->_M_header" & (field_expression "p_Var1->_M_header" identifier -> field_identifier))) ;) (if_statement "if (p_Var7 == (_Base_ptr)0x0) {\nLAB_000a2640:\n                puVar27[-6] = &local_60;\n                local_60 = local_84;\n                puVar27[-7] = 0xa2658;\n                std::\n                _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                ::\n                _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                          ((_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                            *)puVar27[-6],(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4);\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 != local_c8) {\n    *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa278a;\n    operator_delete(*(void **)((int)ppGVar26 + -0x10));\n  }" if (parenthesized_expression "(p_Var7 == (_Base_ptr)0x0)" ( (binary_expression "p_Var7 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_000a2640:\n                puVar27[-6] = &local_60;\n                local_60 = local_84;\n                puVar27[-7] = 0xa2658;\n                std::\n                _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                ::\n                _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                          ((_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                            *)puVar27[-6],(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4);\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 != local_c8) {\n    *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa278a;\n    operator_delete(*(void **)((int)ppGVar26 + -0x10));\n  }" { (labeled_statement "LAB_000a2640:\n                puVar27[-6] = &local_60;" statement_identifier : (expression_statement "puVar27[-6] = &local_60;" (assignment_expression "puVar27[-6] = &local_60" (subscript_expression "puVar27[-6]" identifier [ number_literal ]) = (pointer_expression "&local_60" & identifier)) ;)) (expression_statement "local_60 = local_84;" (assignment_expression "local_60 = local_84" identifier = identifier) ;) (expression_statement "puVar27[-7] = 0xa2658;" (assignment_expression "puVar27[-7] = 0xa2658" (subscript_expression "puVar27[-7]" identifier [ number_literal ]) = number_literal) ;) (ERROR "std::\n                _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                ::\n                _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::" (comma_expression "std::\n                _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n                _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Rb_tree<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>,_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                          ((_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                            *)puVar27[-6],(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4);\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 != local_c8) {\n    *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;" (binary_expression "tuple<>_>\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                            *)puVar27[-6],(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4);\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 != local_c8) {\n    *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p" (binary_expression "tuple<>_" identifier < (ERROR ">" >) identifier) > (binary_expression "((_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                            *)puVar27[-6],(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4);\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 != local_c8) {\n    *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p" (parenthesized_expression "((_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                            *)puVar27[-6],(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4);\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 != local_c8)" ( (binary_expression "(_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                            *)puVar27[-6],(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4);\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 != local_c8" (field_expression "(_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                            *)puVar27[-6],(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4);\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" (field_expression "(_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                            *)puVar27[-6],(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4);\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" (parenthesized_expression "(_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                            *)puVar27[-6],(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4);\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)" ( (ERROR "_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*," (comma_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold" (binary_expression "_Rb_tree<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 "::unordered_set" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Section_id_hash" : : 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>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>_>_>,_std" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" 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>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>_>_>_>,_std" (binary_expression "_unsigned_int>_>_>_>_" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" 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>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) ,) (comma_expression "_unsigned_int>_>_>_>_>_>\n                            *)puVar27[-6],(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4)" (binary_expression "_unsigned_int>_>_>_>_>_>\n                            *)puVar27[-6]" (binary_expression "_unsigned_int>_>_>_>_>_" (binary_expression "_unsigned_int>_>_>_>_" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > identifier) > identifier) > (pointer_expression "*)puVar27[-6]" * (ERROR ")" )) (subscript_expression "puVar27[-6]" identifier [ number_literal ]))) , (comma_expression "(_Base_ptr)puVar27[-5],\n                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4)" (cast_expression "(_Base_ptr)puVar27[-5]" ( (type_descriptor "_Base_ptr" type_identifier) ) (subscript_expression "puVar27[-5]" identifier [ number_literal ])) , (parenthesized_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else {\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4)" ( (ERROR "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);\n                p_Var22 = local_70;\n              }\n              else" (comma_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],\n                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2])" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4]" (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 "&> *)puVar27[-4]" & (ERROR ">" >) (pointer_expression "*)puVar27[-4]" * (ERROR ")" )) (subscript_expression "puVar27[-4]" identifier [ number_literal ])))) , (parenthesized_expression "(tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2])" ( (comma_expression "tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]" (binary_expression "tuple<> *)puVar27[-3]" identifier < (ERROR ">" >) (pointer_expression "*)puVar27[-3]" * (ERROR ")" )) (subscript_expression "puVar27[-3]" identifier [ number_literal ]))) , (cast_expression "(piecewise_construct_t *)puVar27[-2]" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-2]" identifier [ number_literal ]))) ))) ; (assignment_expression "p_Var22 = local_70" identifier = identifier) ; } else) (compound_statement "{\n                do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();\n                ppGVar26 = (General_options **)((int)puVar27 + -4);\n                puVar27 = (undefined4 *)((int)puVar27 + -4);\n              }" { (do_statement "do {\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;\n                  p_Var22 = (_Rb_tree_header *)p_Var21;\n                } while (*pp_Var2 != (_Base_ptr)0x0);" do (ERROR "{\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }\n                  pp_Var2 = &(p_Var22->_M_header)._M_right;\n                  p_Var7 = *pp_Var2;" (compound_statement "{\n                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;\n                  }" { (while_statement "while ((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;" while (parenthesized_expression "((p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0)" ( (binary_expression "(p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0" (field_expression "(p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)._M_left" (parenthesized_expression "(p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left;\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header)" ( (comma_expression "p_Var22 = (_Rb_tree_header *)p_Var7,\n                         object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left" (assignment_expression "p_Var22 = (_Rb_tree_header *)p_Var7" identifier = (cast_expression "(_Rb_tree_header *)p_Var7" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "object <= (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left" identifier <= (assignment_expression "(Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                    p_Var7 = (p_Var22->_M_header)._M_left" (parenthesized_expression "(Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])))))" ( (comma_expression "Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                         ((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))" (binary_expression "_true> *)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var22 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var22 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var22 + 0x10)" ( (binary_expression "(int)p_Var22 + 0x10" (cast_expression "(int)p_Var22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) && (parenthesized_expression "((object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))" ( (parenthesized_expression "(object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])))" ( (binary_expression "object != (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))" identifier != (parenthesized_expression "(Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))" ( (comma_expression "Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])" (binary_expression "_true> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var22 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var22 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var22 + 0x10)" ( (binary_expression "(int)p_Var22 + 0x10" (cast_expression "(int)p_Var22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) || (parenthesized_expression "(data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])" ( (binary_expression "data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]" identifier <= (subscript_expression "((size_t *)((int)p_Var22 + 0x10))[1]" (parenthesized_expression "((size_t *)((int)p_Var22 + 0x10))" ( (cast_expression "(size_t *)((int)p_Var22 + 0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Var22 + 0x10)" ( (binary_expression "(int)p_Var22 + 0x10" (cast_expression "(int)p_Var22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) [ number_literal ])) )))) ))) )) )))) )) (ERROR "{\n                    p_Var7" { identifier) = (field_expression "(p_Var22->_M_header)._M_left" (parenthesized_expression "(p_Var22->_M_header)" ( (field_expression "p_Var22->_M_header" identifier -> field_identifier) )) . field_identifier)))) (ERROR ";\n                    p_Var21 = &p_Var22->_M_header;\n                    if ((p_Var22->_M_header" ; identifier = & identifier -> identifier ; if ( ( identifier -> identifier) )) . field_identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_000a262a;" goto statement_identifier ;)) }) (expression_statement "pp_Var2 = &(p_Var22->_M_header)._M_right;" (assignment_expression "pp_Var2 = &(p_Var22->_M_header)._M_right" identifier = (pointer_expression "&(p_Var22->_M_header)._M_right" & (field_expression "(p_Var22->_M_header)._M_right" (parenthesized_expression "(p_Var22->_M_header)" ( (field_expression "p_Var22->_M_header" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "p_Var7 = *pp_Var2;" (assignment_expression "p_Var7 = *pp_Var2" identifier = (pointer_expression "*pp_Var2" * identifier)) ;)) (expression_statement "p_Var22 = (_Rb_tree_header *)p_Var21;" (assignment_expression "p_Var22 = (_Rb_tree_header *)p_Var21" identifier = (cast_expression "(_Rb_tree_header *)p_Var21" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "}" }) while (parenthesized_expression "(*pp_Var2 != (_Base_ptr)0x0)" ( (binary_expression "*pp_Var2 != (_Base_ptr)0x0" (pointer_expression "*pp_Var2" * identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_000a262a:\n                if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();" statement_identifier : (if_statement "if (((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ();" if (parenthesized_expression "(((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ()" ( (parenthesized_expression "((p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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                          ()" ( (comma_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\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" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                std::\n                _Hashtable<std::pair<gold" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                std::\n                _Hashtable<std" (assignment_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4)" (field_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;\n                __node_gen_1._M_h" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;\n                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;\n                *(undefined1 **)((int)puVar27 + -0x20) = local_c0" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;\n                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;\n                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1;\n                *(undefined4 *)((int)puVar27 + -0x10) = 0" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10) {\n                *(undefined4 *)((int)puVar27 + -0xc) = 1" (call_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2;\n              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10)" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2);\n              puVar27 = puVar27 + -2" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||\n                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2)" (binary_expression "(p_Var22 == p_Var1) ||\n                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count))" (parenthesized_expression "(p_Var22 == p_Var1)" ( (binary_expression "p_Var22 == p_Var1" identifier == identifier) )) || (parenthesized_expression "(object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count))" ( (binary_expression "object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)" identifier < (parenthesized_expression "(Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)" ( (comma_expression "Sized_relobj_file<32,_true> *)p_Var22->_M_node_count" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)p_Var22->_M_node_count" identifier > (pointer_expression "*)p_Var22->_M_node_count" * (ERROR ")" )) (field_expression "p_Var22->_M_node_count" identifier -> field_identifier)))) ))) ))) || (assignment_expression "((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;\n              }\n              ppGVar26 = (General_options **)(puVar27 + -2)" (parenthesized_expression "((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1)))))" ( (parenthesized_expression "(object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))))" ( (binary_expression "object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1)))" identifier == (parenthesized_expression "(Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1)))" ( (comma_expression "Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)p_Var22->_M_node_count &&\n                    (data_shndx < *(uint *)(p_Var22 + 1))" (binary_expression "_true> *)p_Var22->_M_node_count" identifier > (pointer_expression "*)p_Var22->_M_node_count" * (ERROR ")" )) (field_expression "p_Var22->_M_node_count" identifier -> field_identifier))) && (parenthesized_expression "(data_shndx < *(uint *)(p_Var22 + 1))" ( (binary_expression "data_shndx < *(uint *)(p_Var22 + 1)" identifier < (pointer_expression "*(uint *)(p_Var22 + 1)" * (cast_expression "(uint *)(p_Var22 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var22 + 1)" ( (binary_expression "p_Var22 + 1" identifier + number_literal) ))))) )))) ))) )) )) (ERROR "goto LAB_000a2640;\n              }\n              ppGVar26" identifier identifier ; } identifier) = (cast_expression "(General_options **)(puVar27 + -2)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -2)" ( (binary_expression "puVar27 + -2" identifier + number_literal) ))))) (ERROR ";\n              puVar27 = puVar27" ; identifier = identifier) + number_literal) (ERROR ";\n              for" ; for) (argument_list "(puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;\n                  puVar10 = (undefined4 *)*puVar10)" ( (ERROR "puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;" (binary_expression "puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0" (assignment_expression "puVar10 = *(undefined4 **)(puVar13 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(puVar13 + 0x30)" * (cast_expression "(undefined4 **)(puVar13 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x30)" ( (binary_expression "puVar13 + 0x30" identifier + number_literal) ))))) (ERROR "; puVar10" ; identifier) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (assignment_expression "puVar10 = (undefined4 *)*puVar10" identifier = (cast_expression "(undefined4 *)*puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier))) ))) (ERROR "{" {) * (cast_expression "(undefined4 *)((int)puVar27 + -0xc) = 1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)puVar27 + -0xc) = 1" (parenthesized_expression "((int)puVar27 + -0xc)" ( (binary_expression "(int)puVar27 + -0xc" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = number_literal))) (ERROR ";" ;) * (cast_expression "(undefined4 *)((int)puVar27 + -0x10) = 0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)puVar27 + -0x10) = 0" (parenthesized_expression "((int)puVar27 + -0x10)" ( (binary_expression "(int)puVar27 + -0x10" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = number_literal))) (ERROR ";" ;) * (cast_expression "(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1" ( (type_descriptor "__node_gen_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (assignment_expression "((int)puVar27 + -0x14) = &__node_gen_1" (parenthesized_expression "((int)puVar27 + -0x14)" ( (binary_expression "(int)puVar27 + -0x14" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = (pointer_expression "&__node_gen_1" & identifier)))) (ERROR ";" ;) * (cast_expression "(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (assignment_expression "((int)puVar27 + -0x18) = puVar10 + 1" (parenthesized_expression "((int)puVar27 + -0x18)" ( (binary_expression "(int)puVar27 + -0x18" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = (binary_expression "puVar10 + 1" identifier + number_literal)))) (ERROR ";" ;) * (cast_expression "(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4" (parenthesized_expression "((int)puVar27 + -0x1c)" ( (binary_expression "(int)puVar27 + -0x1c" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = (binary_expression "(int)(p_Var22 + 1) + 4" (cast_expression "(int)(p_Var22 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var22 + 1)" ( (binary_expression "p_Var22 + 1" identifier + number_literal) ))) + number_literal)))) (ERROR ";" ;) * (cast_expression "(undefined1 **)((int)puVar27 + -0x20) = local_c0" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (assignment_expression "((int)puVar27 + -0x20) = local_c0" (parenthesized_expression "((int)puVar27 + -0x20)" ( (binary_expression "(int)puVar27 + -0x20" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = identifier))) (ERROR ";" ;) * (cast_expression "(undefined4 *)((int)puVar27 + -0x24) = 0xa268b" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)puVar27 + -0x24) = 0xa268b" (parenthesized_expression "((int)puVar27 + -0x24)" ( (binary_expression "(int)puVar27 + -0x24" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = number_literal))) (ERROR ";\n                __node_gen_1" ; identifier) . field_identifier) = (cast_expression "(__hashtable_alloc *)((int)(p_Var22 + 1) + 4)" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var22 + 1) + 4)" ( (binary_expression "(int)(p_Var22 + 1) + 4" (cast_expression "(int)(p_Var22 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var22 + 1)" ( (binary_expression "p_Var22 + 1" identifier + number_literal) ))) + number_literal) )))) (ERROR ";\n                std::\n                _Hashtable" ; identifier : : 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) (ERROR "::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_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                          (" : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier < true , identifier , identifier > identifier > : : identifier < identifier : : identifier < identifier : : identifier * , identifier > & , identifier : : identifier : : identifier < identifier : : identifier < identifier : : identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier > identifier > identifier > identifier > () )) )) (expression_statement ";" ;))) (expression_statement "ppGVar26 = (General_options **)((int)puVar27 + -4);" (assignment_expression "ppGVar26 = (General_options **)((int)puVar27 + -4)" identifier = (cast_expression "(General_options **)((int)puVar27 + -4)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar27 + -4)" ( (binary_expression "(int)puVar27 + -4" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar27 = (undefined4 *)((int)puVar27 + -4);" (assignment_expression "puVar27 = (undefined4 *)((int)puVar27 + -4)" identifier = (cast_expression "(undefined4 *)((int)puVar27 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar27 + -4)" ( (binary_expression "(int)puVar27 + -4" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (ERROR "}\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      prelocs = prelocs + 0xc;\n      puVar27 = ppGVar26;\n    } while (reloc_count != local_b4" } } } } identifier : identifier = identifier + number_literal ; identifier = identifier + number_literal ; identifier = identifier ; } while ( identifier != identifier) )))) (ERROR ";\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *" ; } if ( ( identifier < primitive_type , identifier : : identifier < primitive_type > , identifier : : identifier < primitive_type > identifier > identifier *) )) (ERROR "src_section_name" identifier) . field_identifier) . field_identifier) != identifier) )) (ERROR "{" {) * (cast_expression "(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p" (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier))))) ;) (expression_statement "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa278a;" (assignment_expression "*(undefined4 *)((int)ppGVar26 + -0x14) = 0xa278a" (pointer_expression "*(undefined4 *)((int)ppGVar26 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar26 + -0x14)" ( (binary_expression "(int)ppGVar26 + -0x14" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppGVar26 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppGVar26 + -0x10))" identifier (argument_list "(*(void **)((int)ppGVar26 + -0x10))" ( (pointer_expression "*(void **)((int)ppGVar26 + -0x10)" * (cast_expression "(void **)((int)ppGVar26 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar26 + -0x10)" ( (binary_expression "(int)ppGVar26 + -0x10" (cast_expression "(int)ppGVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (return_statement "return;" return ;) }))
(translation_unit "void FUN_000a1eb0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *param_5,\n                 undefined4 param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10\n                 ,uint param_11,int param_12)\n\n{\n  undefined4 *puVar1;\n  code *pcVar2;\n  uint **ppuVar3;\n  int iVar4;\n  size_t sVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  byte bVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  undefined1 *puVar15;\n  int iVar16;\n  byte *pbVar17;\n  undefined **ppuVar18;\n  byte *pbVar19;\n  undefined4 unaff_EDI;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  int iStack_d0;\n  undefined1 auStack_cc [4];\n  undefined1 *local_c8;\n  int *local_c4;\n  undefined1 *local_c0;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int *local_b0;\n  byte *local_ac;\n  byte local_a6;\n  char local_a5;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  uint *local_94;\n  uint local_90;\n  undefined **local_8c;\n  uint *local_88;\n  uint **local_84;\n  int local_80;\n  undefined1 local_7c [12];\n  int local_70;\n  int local_6c;\n  int local_68;\n  uint **local_64;\n  uint **local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar24 = 0;\n  local_8c = &__DT_PLTGOT;\n  local_b0 = &DAT_005ea7c8;\n  iVar16 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar16 == 0) {\n    iStack_d0 = iVar16;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar16 + 0x5934) == 0) {\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }\n  puVar15 = local_4c[0];\n  iVar4 = *local_b0;\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0) {\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }\n  else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }\n  if (param_8 != 0) {\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }\n  if (local_4c[0] != local_c8) {\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }\n  return;\n}\n\n" (function_definition "void FUN_000a1eb0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *param_5,\n                 undefined4 param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10\n                 ,uint param_11,int param_12)\n\n{\n  undefined4 *puVar1;\n  code *pcVar2;\n  uint **ppuVar3;\n  int iVar4;\n  size_t sVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  byte bVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  undefined1 *puVar15;\n  int iVar16;\n  byte *pbVar17;\n  undefined **ppuVar18;\n  byte *pbVar19;\n  undefined4 unaff_EDI;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  int iStack_d0;\n  undefined1 auStack_cc [4];\n  undefined1 *local_c8;\n  int *local_c4;\n  undefined1 *local_c0;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int *local_b0;\n  byte *local_ac;\n  byte local_a6;\n  char local_a5;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  uint *local_94;\n  uint local_90;\n  undefined **local_8c;\n  uint *local_88;\n  uint **local_84;\n  int local_80;\n  undefined1 local_7c [12];\n  int local_70;\n  int local_6c;\n  int local_68;\n  uint **local_64;\n  uint **local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar24 = 0;\n  local_8c = &__DT_PLTGOT;\n  local_b0 = &DAT_005ea7c8;\n  iVar16 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar16 == 0) {\n    iStack_d0 = iVar16;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar16 + 0x5934) == 0) {\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }\n  puVar15 = local_4c[0];\n  iVar4 = *local_b0;\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0) {\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }\n  else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }\n  if (param_8 != 0) {\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }\n  if (local_4c[0] != local_c8) {\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000a1eb0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *param_5,\n                 undefined4 param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10\n                 ,uint param_11,int param_12)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *param_5,\n                 undefined4 param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10\n                 ,uint param_11,int param_12)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "uint *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "undefined4 param_10" type_identifier identifier) , (parameter_declaration "uint param_11" type_identifier identifier) , (parameter_declaration "int param_12" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  code *pcVar2;\n  uint **ppuVar3;\n  int iVar4;\n  size_t sVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  byte bVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  undefined1 *puVar15;\n  int iVar16;\n  byte *pbVar17;\n  undefined **ppuVar18;\n  byte *pbVar19;\n  undefined4 unaff_EDI;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  int iStack_d0;\n  undefined1 auStack_cc [4];\n  undefined1 *local_c8;\n  int *local_c4;\n  undefined1 *local_c0;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int *local_b0;\n  byte *local_ac;\n  byte local_a6;\n  char local_a5;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  uint *local_94;\n  uint local_90;\n  undefined **local_8c;\n  uint *local_88;\n  uint **local_84;\n  int local_80;\n  undefined1 local_7c [12];\n  int local_70;\n  int local_6c;\n  int local_68;\n  uint **local_64;\n  uint **local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar24 = 0;\n  local_8c = &__DT_PLTGOT;\n  local_b0 = &DAT_005ea7c8;\n  iVar16 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar16 == 0) {\n    iStack_d0 = iVar16;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar16 + 0x5934) == 0) {\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }\n  puVar15 = local_4c[0];\n  iVar4 = *local_b0;\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0) {\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }\n  else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }\n  if (param_8 != 0) {\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }\n  if (local_4c[0] != local_c8) {\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint **ppuVar3;" type_identifier (pointer_declarator "**ppuVar3" * (pointer_declarator "*ppuVar3" * identifier)) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int extraout_ECX_00;" primitive_type identifier ;) (declaration "int extraout_ECX_01;" primitive_type identifier ;) (declaration "int extraout_ECX_02;" primitive_type identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "undefined **ppuVar18;" type_identifier (pointer_declarator "**ppuVar18" * (pointer_declarator "*ppuVar18" * identifier)) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "undefined4 unaff_EDI;" type_identifier identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "byte bVar24;" type_identifier identifier ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "undefined1 auStack_cc [4];" type_identifier (array_declarator "auStack_cc [4]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "int *local_c4;" primitive_type (pointer_declarator "*local_c4" * identifier) ;) (declaration "undefined1 *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "int local_b8;" primitive_type identifier ;) (declaration "int local_b4;" primitive_type identifier ;) (declaration "int *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "byte *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "byte local_a6;" type_identifier identifier ;) (declaration "char local_a5;" primitive_type identifier ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "uint *local_94;" type_identifier (pointer_declarator "*local_94" * identifier) ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "undefined **local_8c;" type_identifier (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)) ;) (declaration "uint *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "uint **local_84;" type_identifier (pointer_declarator "**local_84" * (pointer_declarator "*local_84" * identifier)) ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "undefined1 local_7c [12];" type_identifier (array_declarator "local_7c [12]" identifier [ number_literal ]) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "uint **local_64;" type_identifier (pointer_declarator "**local_64" * (pointer_declarator "*local_64" * identifier)) ;) (declaration "uint **local_60;" type_identifier (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)) ;) (declaration "uint *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "uint *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "uint *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "uint *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "undefined1 *local_4c [2];" type_identifier (pointer_declarator "*local_4c [2]" * (array_declarator "local_4c [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "uint *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "local_8c = &__DT_PLTGOT;" (assignment_expression "local_8c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_b0 = &DAT_005ea7c8;" (assignment_expression "local_b0 = &DAT_005ea7c8" identifier = (pointer_expression "&DAT_005ea7c8" & identifier)) ;) (expression_statement "iVar16 = *(int *)(DAT_005ea7c8 + 8);" (assignment_expression "iVar16 = *(int *)(DAT_005ea7c8 + 8)" identifier = (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar16 == 0) {\n    iStack_d0 = iVar16;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    iStack_d0 = iVar16;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "iStack_d0 = iVar16;" (assignment_expression "iStack_d0 = iVar16" identifier = identifier) ;) (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_002446e0("../../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 *)(iVar16 + 0x5934) == 0) {\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }" if (parenthesized_expression "(*(int *)(iVar16 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar16 + 0x5934) == 0" (pointer_expression "*(int *)(iVar16 + 0x5934)" * (cast_expression "(int *)(iVar16 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x5934)" ( (binary_expression "iVar16 + 0x5934" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }" { (expression_statement "local_c8 = local_44;" (assignment_expression "local_c8 = local_44" identifier = identifier) ;) (expression_statement "iStack_d0 = 0;" (assignment_expression "iStack_d0 = 0" identifier = number_literal) ;) (expression_statement "local_4c[0] = local_c8;" (assignment_expression "local_4c[0] = local_c8" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00072b90(local_4c,"","");" (call_expression "FUN_00072b90(local_4c,"","")" identifier (argument_list "(local_4c,"","")" ( identifier , (string_literal """" " ") , (string_literal """" " ") ))) ;) (expression_statement "piVar14 = (int *)auStack_cc;" (assignment_expression "piVar14 = (int *)auStack_cc" identifier = (cast_expression "(int *)auStack_cc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar16 = extraout_ECX_00;" (assignment_expression "iVar16 = extraout_ECX_00" identifier = identifier) ;) }) (else_clause "else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }" else (compound_statement "{\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }" { (expression_statement "(**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);" (call_expression "(**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5)" (parenthesized_expression "(**(code **)(*param_4 + 0x40))" ( (pointer_expression "**(code **)(*param_4 + 0x40)" * (pointer_expression "*(code **)(*param_4 + 0x40)" * (cast_expression "(code **)(*param_4 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_4 + 0x40)" ( (binary_expression "*param_4 + 0x40" (pointer_expression "*param_4" * identifier) + number_literal) ))))) )) (argument_list "(local_4c,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_c8 = local_44;" (assignment_expression "local_c8 = local_44" identifier = identifier) ;) (expression_statement "piVar14 = &iStack_d0;" (assignment_expression "piVar14 = &iStack_d0" identifier = (pointer_expression "&iStack_d0" & identifier)) ;) (expression_statement "iVar16 = extraout_ECX;" (assignment_expression "iVar16 = extraout_ECX" identifier = identifier) ;) }))) (expression_statement "puVar15 = local_4c[0];" (assignment_expression "puVar15 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = *local_b0;" (assignment_expression "iVar4 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (if_statement "if (*(int *)(iVar4 + 8) == 0) {\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(*(int *)(iVar4 + 8) == 0)" ( (binary_expression "*(int *)(iVar4 + 8) == 0" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }" { (expression_statement "*(undefined4 *)((int)piVar14 + -4) = unaff_EDI;" (assignment_expression "*(undefined4 *)((int)piVar14 + -4) = unaff_EDI" (pointer_expression "*(undefined4 *)((int)piVar14 + -4)" * (cast_expression "(undefined4 *)((int)piVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -4)" ( (binary_expression "(int)piVar14 + -4" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;" (assignment_expression "*(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf" (pointer_expression "*(undefined ***)((int)piVar14 + -8)" * (cast_expression "(undefined ***)((int)piVar14 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar14 + -8)" ( (binary_expression "(int)piVar14 + -8" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_8c + -0x64ebf" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar14 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar14 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0xc)" ( (binary_expression "(int)piVar14 + -0xc" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)((int)piVar14 + -0x10)" * (cast_expression "(int *)((int)piVar14 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2989" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0) {\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }\n  else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(iVar4 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar4 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar4 + 8) + 0x5934" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }" { (labeled_statement "LAB_000a1f35:\n    local_a5 = '\0';" statement_identifier : (expression_statement "local_a5 = '\0';" (assignment_expression "local_a5 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }" else (compound_statement "{\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }" { (expression_statement "local_88 = &local_2c;" (assignment_expression "local_88 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "puVar7 = (undefined1 *)0xffffffff;" (assignment_expression "puVar7 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = local_88;" (assignment_expression "local_34 = local_88" identifier = identifier) ;) (if_statement "if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }" if (parenthesized_expression "(local_4c[0] != (undefined1 *)0x0)" ( (binary_expression "local_4c[0] != (undefined1 *)0x0" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }" { (expression_statement "*(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];" (assignment_expression "*(undefined1 **)((int)piVar14 + -0x10) = local_4c[0]" (pointer_expression "*(undefined1 **)((int)piVar14 + -0x10)" * (cast_expression "(undefined1 **)((int)piVar14 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar5 = strlen(*(char **)((int)piVar14 + -0x10));" (assignment_expression "sVar5 = strlen(*(char **)((int)piVar14 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)piVar14 + -0x10))" identifier (argument_list "(*(char **)((int)piVar14 + -0x10))" ( (pointer_expression "*(char **)((int)piVar14 + -0x10)" * (cast_expression "(char **)((int)piVar14 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "puVar7 = puVar15 + sVar5;" (assignment_expression "puVar7 = puVar15 + sVar5" identifier = (binary_expression "puVar15 + sVar5" identifier + identifier)) ;) })) (expression_statement "*(undefined4 *)((int)piVar14 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)piVar14 + -4) = 0" (pointer_expression "*(undefined4 *)((int)piVar14 + -4)" * (cast_expression "(undefined4 *)((int)piVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -4)" ( (binary_expression "(int)piVar14 + -4" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)((int)piVar14 + -8) = puVar7;" (assignment_expression "*(undefined1 **)((int)piVar14 + -8) = puVar7" (pointer_expression "*(undefined1 **)((int)piVar14 + -8)" * (cast_expression "(undefined1 **)((int)piVar14 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -8)" ( (binary_expression "(int)piVar14 + -8" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(undefined1 **)((int)piVar14 + -0xc) = puVar15;" (assignment_expression "*(undefined1 **)((int)piVar14 + -0xc) = puVar15" (pointer_expression "*(undefined1 **)((int)piVar14 + -0xc)" * (cast_expression "(undefined1 **)((int)piVar14 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -0xc)" ( (binary_expression "(int)piVar14 + -0xc" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)((int)piVar14 + -0x10) = local_84;" (assignment_expression "*(uint ***)((int)piVar14 + -0x10) = local_84" (pointer_expression "*(uint ***)((int)piVar14 + -0x10)" * (cast_expression "(uint ***)((int)piVar14 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2804" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar16 = 5;" (assignment_expression "iVar16 = 5" identifier = number_literal) ;) (expression_statement "bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);" (assignment_expression "bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10)" identifier = (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)piVar14 + -0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar21 = piVar14 == (int *)0x0;" (assignment_expression "bVar21 = piVar14 == (int *)0x0" identifier = (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "ppuVar18 = local_8c + -0x67293;" (assignment_expression "ppuVar18 = local_8c + -0x67293" identifier = (binary_expression "local_8c + -0x67293" identifier + number_literal)) ;) (expression_statement "puVar13 = local_34;" (assignment_expression "puVar13 = local_34" identifier = identifier) ;) (do_statement "do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);" do (compound_statement "{\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;" (assignment_expression "bVar23 = *(byte *)ppuVar18 < (byte)*puVar13" identifier = (binary_expression "*(byte *)ppuVar18 < (byte)*puVar13" (pointer_expression "*(byte *)ppuVar18" * (cast_expression "(byte *)ppuVar18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*puVar13" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;" (assignment_expression "bVar21 = *(byte *)ppuVar18 == (byte)*puVar13" identifier = (binary_expression "*(byte *)ppuVar18 == (byte)*puVar13" (pointer_expression "*(byte *)ppuVar18" * (cast_expression "(byte *)ppuVar18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (binary_expression "(byte)*puVar13" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);" (assignment_expression "ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar18 + (uint)bVar24 * -2 + 1)" ( (binary_expression "(int)ppuVar18 + (uint)bVar24 * -2 + 1" (binary_expression "(int)ppuVar18 + (uint)bVar24 * -2" (cast_expression "(int)ppuVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);" (assignment_expression "puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar13 + (uint)bVar24 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + (uint)bVar24 * -2 + 1)" ( (binary_expression "(int)puVar13 + (uint)bVar24 * -2 + 1" (binary_expression "(int)puVar13 + (uint)bVar24 * -2" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar21)" ( identifier )) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar23 && !bVar21) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar21) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar21) == bVar23" (parenthesized_expression "(!bVar23 && !bVar21)" ( (binary_expression "!bVar23 && !bVar21" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar21" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }" { (expression_statement "iVar16 = 0xf;" (assignment_expression "iVar16 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)((int)local_8c + -0x19ca46);" (assignment_expression "pbVar19 = (byte *)((int)local_8c + -0x19ca46)" identifier = (cast_expression "(byte *)((int)local_8c + -0x19ca46)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + -0x19ca46)" ( (binary_expression "(int)local_8c + -0x19ca46" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar13 = local_34;" (assignment_expression "puVar13 = local_34" identifier = identifier) ;) (do_statement "do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);" do (compound_statement "{\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar19 < (byte)*puVar13;" (assignment_expression "bVar22 = *pbVar19 < (byte)*puVar13" identifier = (binary_expression "*pbVar19 < (byte)*puVar13" (pointer_expression "*pbVar19" * identifier) < (binary_expression "(byte)*puVar13" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar23 = *pbVar19 == (byte)*puVar13;" (assignment_expression "bVar23 = *pbVar19 == (byte)*puVar13" identifier = (binary_expression "*pbVar19 == (byte)*puVar13" (pointer_expression "*pbVar19" * identifier) == (binary_expression "(byte)*puVar13" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);" (assignment_expression "puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar13 + (uint)bVar24 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + (uint)bVar24 * -2 + 1)" ( (binary_expression "(int)puVar13 + (uint)bVar24 * -2 + 1" (binary_expression "(int)puVar13 + (uint)bVar24 * -2" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }" if (parenthesized_expression "((!bVar22 && !bVar23) != bVar22)" ( (binary_expression "(!bVar22 && !bVar23) != bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" ( (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }" { (if_statement "if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }" if (parenthesized_expression "(local_34 == local_88)" ( (binary_expression "local_34 == local_88" identifier == identifier) )) (compound_statement "{\n          iVar4 = *local_b0;\n        }" { (expression_statement "iVar4 = *local_b0;" (assignment_expression "iVar4 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) }) (else_clause "else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }" else (compound_statement "{\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }" { (expression_statement "*(uint **)((int)piVar14 + -0x10) = local_34;" (assignment_expression "*(uint **)((int)piVar14 + -0x10) = local_34" (pointer_expression "*(uint **)((int)piVar14 + -0x10)" * (cast_expression "(uint **)((int)piVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar4 = *local_b0;" (assignment_expression "iVar4 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (expression_statement "iVar16 = extraout_ECX_02;" (assignment_expression "iVar16 = extraout_ECX_02" identifier = identifier) ;) }))) (goto_statement "goto LAB_000a1f35;" goto statement_identifier ;) })) })) (if_statement "if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }" if (parenthesized_expression "(local_34 != local_88)" ( (binary_expression "local_34 != local_88" identifier != identifier) )) (compound_statement "{\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }" { (expression_statement "*(uint **)((int)piVar14 + -0x10) = local_34;" (assignment_expression "*(uint **)((int)piVar14 + -0x10) = local_34" (pointer_expression "*(uint **)((int)piVar14 + -0x10)" * (cast_expression "(uint **)((int)piVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(uint ***)((int)piVar14 + -0xc) = local_84;" (assignment_expression "*(uint ***)((int)piVar14 + -0xc) = local_84" (pointer_expression "*(uint ***)((int)piVar14 + -0xc)" * (cast_expression "(uint ***)((int)piVar14 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar14 + -0xc)" ( (binary_expression "(int)piVar14 + -0xc" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = param_5;" (assignment_expression "local_30 = param_5" identifier = identifier) ;) (expression_statement "local_84 = *(uint ***)(param_2 + 0x15c);" (assignment_expression "local_84 = *(uint ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x15c)" * (cast_expression "(uint ***)(param_2 + 0x15c)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x15c)" ( (binary_expression "param_2 + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "*(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;" (assignment_expression "*(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15" (pointer_expression "*(uint ***)((int)piVar14 + -0x10)" * (cast_expression "(uint ***)((int)piVar14 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + 0x15" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2873" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_9c = FUN_00074520();" (assignment_expression "local_9c = FUN_00074520()" identifier = (call_expression "FUN_00074520()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_a0 = local_9c + 0xc;" (assignment_expression "local_a0 = local_9c + 0xc" identifier = (binary_expression "local_9c + 0xc" identifier + number_literal)) ;) (expression_statement "local_b8 = local_9c + 0x18;" (assignment_expression "local_b8 = local_9c + 0x18" identifier = (binary_expression "local_9c + 0x18" identifier + number_literal)) ;) (expression_statement "local_a4 = local_9c + 0x24;" (assignment_expression "local_a4 = local_9c + 0x24" identifier = (binary_expression "local_9c + 0x24" identifier + number_literal)) ;) (expression_statement "local_bc = local_9c + 0x30;" (assignment_expression "local_bc = local_9c + 0x30" identifier = (binary_expression "local_9c + 0x30" identifier + number_literal)) ;) (expression_statement "iVar4 = *local_b0;" (assignment_expression "iVar4 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (expression_statement "local_a5 = '\x01';" (assignment_expression "local_a5 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar16 = extraout_ECX_01;" (assignment_expression "iVar16 = extraout_ECX_01" identifier = identifier) ;) }))) (if_statement "if (*(int *)(iVar4 + 8) == 0) {\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(*(int *)(iVar4 + 8) == 0)" ( (binary_expression "*(int *)(iVar4 + 8) == 0" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }" { (expression_statement "*(int *)((int)piVar14 + -4) = iVar16;" (assignment_expression "*(int *)((int)piVar14 + -4) = iVar16" (pointer_expression "*(int *)((int)piVar14 + -4)" * (cast_expression "(int *)((int)piVar14 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -4)" ( (binary_expression "(int)piVar14 + -4" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;" (assignment_expression "*(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf" (pointer_expression "*(undefined ***)((int)piVar14 + -8)" * (cast_expression "(undefined ***)((int)piVar14 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar14 + -8)" ( (binary_expression "(int)piVar14 + -8" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_8c + -0x64ebf" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar14 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar14 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0xc)" ( (binary_expression "(int)piVar14 + -0xc" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)((int)piVar14 + -0x10)" * (cast_expression "(int *)((int)piVar14 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (param_8 != 0) {\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }" { (expression_statement "local_ac = (byte *)0x0;" (assignment_expression "local_ac = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c0 = local_7c;" (assignment_expression "local_c0 = local_7c" identifier = identifier) ;) (expression_statement "local_c4 = &local_68;" (assignment_expression "local_c4 = &local_68" identifier = (pointer_expression "&local_68" & identifier)) ;) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = (undefined1 *)piVar14;" (assignment_expression "puVar15 = (undefined1 *)piVar14" identifier = (cast_expression "(undefined1 *)piVar14" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);" do (compound_statement "{\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    }" { (expression_statement "uVar12 = param_7[1];" (assignment_expression "uVar12 = param_7[1]" identifier = (subscript_expression "param_7[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_7[2];" (assignment_expression "uVar6 = param_7[2]" identifier = (subscript_expression "param_7[2]" identifier [ number_literal ])) ;) (expression_statement "local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" identifier = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | 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 "uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;" (assignment_expression "uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8" identifier = (binary_expression "((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8" (parenthesized_expression "((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" ( (binary_expression "(uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "(uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )) >> number_literal)) ;) (expression_statement "piVar14 = (int *)puVar15;" (assignment_expression "piVar14 = (int *)puVar15" identifier = (cast_expression "(int *)puVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(uVar12 < param_11)" ( (binary_expression "uVar12 < param_11" identifier < identifier) )) (compound_statement "{\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }" { (if_statement "if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(param_12 == 0)" ( (binary_expression "param_12 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)(puVar15 + -8) = local_8c + -0x65123;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_8c + -0x65123" (pointer_expression "*(undefined ***)(puVar15 + -8)" * (cast_expression "(undefined ***)(puVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "local_8c + -0x65123" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_8c + -0x19ca36" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_000a2909;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_000a2909" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_000a2909" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar16 = uVar12 * 0x10 + param_12;" (assignment_expression "iVar16 = uVar12 * 0x10 + param_12" identifier = (binary_expression "uVar12 * 0x10 + param_12" (binary_expression "uVar12 * 0x10" identifier * number_literal) + identifier)) ;) (expression_statement "local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);" (assignment_expression "local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8)" identifier = (cast_expression "(uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8)" ( (binary_expression "*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8" (binary_expression "*(ushort *)(iVar16 + 0xe) << 8" (pointer_expression "*(ushort *)(iVar16 + 0xe)" * (cast_expression "(ushort *)(iVar16 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xe)" ( (binary_expression "iVar16 + 0xe" identifier + number_literal) )))) << number_literal) | (binary_expression "*(ushort *)(iVar16 + 0xe) >> 8" (pointer_expression "*(ushort *)(iVar16 + 0xe)" * (cast_expression "(ushort *)(iVar16 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xe)" ( (binary_expression "iVar16 + 0xe" identifier + number_literal) )))) >> number_literal)) ))))) ;) (if_statement "if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }" if (parenthesized_expression "(local_88 < (uint *)0xff00)" ( (binary_expression "local_88 < (uint *)0xff00" identifier < (cast_expression "(uint *)0xff00" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }" { (labeled_statement "LAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);" statement_identifier : (expression_statement "uVar12 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar12 = *(uint *)(iVar16 + 4)" identifier = (pointer_expression "*(uint *)(iVar16 + 4)" * (cast_expression "(uint *)(iVar16 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) ))))) ;)) (expression_statement "puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);" (assignment_expression "puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" identifier = (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "local_98 = (int)puVar13 + local_90;" (assignment_expression "local_98 = (int)puVar13 + local_90" identifier = (binary_expression "(int)puVar13 + local_90" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }" if (parenthesized_expression "(local_a5 != '\0')" ( (binary_expression "local_a5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }" { (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = local_88;" (assignment_expression "local_30 = local_88" identifier = identifier) ;) (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_9c;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_9c" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2188;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2188" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar11 = *(byte *)(iVar16 + 0xc);" (assignment_expression "bVar11 = *(byte *)(iVar16 + 0xc)" identifier = (pointer_expression "*(byte *)(iVar16 + 0xc)" * (cast_expression "(byte *)(iVar16 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) (labeled_statement "joined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }" statement_identifier : (if_statement "if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }" if (parenthesized_expression "((bVar11 & 0xf) == 3)" ( (binary_expression "(bVar11 & 0xf) == 3" (parenthesized_expression "(bVar11 & 0xf)" ( (binary_expression "bVar11 & 0xf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }" { (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_a0;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a0" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (uint *)0xffffffff;" (assignment_expression "local_34 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa21b7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa21b7" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }" else (compound_statement "{\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }" { (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_a0;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a0" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa202a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa202a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) })))) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_b8;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_b8" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_2c = local_90;" (assignment_expression "local_2c = local_90" identifier = identifier) ;) (expression_statement "local_28 = (int)local_90 >> 0x1f;" (assignment_expression "local_28 = (int)local_90 >> 0x1f" identifier = (binary_expression "(int)local_90 >> 0x1f" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2057;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2057" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = puVar13;" (assignment_expression "local_34 = puVar13" identifier = identifier) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar12 = *param_7;" (assignment_expression "uVar12 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "puVar1 = *(undefined4 **)(local_a4 + 4);" (assignment_expression "puVar1 = *(undefined4 **)(local_a4 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_a4 + 4)" * (cast_expression "(undefined4 **)(local_a4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a4 + 4)" ( (binary_expression "local_a4 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);" (assignment_expression "local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" identifier = (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }" if (parenthesized_expression "(puVar1 == *(undefined4 **)(local_a4 + 8))" ( (binary_expression "puVar1 == *(undefined4 **)(local_a4 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_a4 + 8)" * (cast_expression "(undefined4 **)(local_a4 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a4 + 8)" ( (binary_expression "local_a4 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }" { (expression_statement "*(uint ***)(puVar15 + -8) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -8) = local_84" (pointer_expression "*(uint ***)(puVar15 + -8)" * (cast_expression "(uint ***)(puVar15 + -8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar15 + -0xc) = puVar1;" (assignment_expression "*(undefined4 **)(puVar15 + -0xc) = puVar1" (pointer_expression "*(undefined4 **)(puVar15 + -0xc)" * (cast_expression "(undefined4 **)(puVar15 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_a4;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a4" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2722;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2722" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }" else (compound_statement "{\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }" { (expression_statement "*puVar1 = local_34;" (assignment_expression "*puVar1 = local_34" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_a4 + 4) = puVar1 + 2;" (assignment_expression "*(undefined4 **)(local_a4 + 4) = puVar1 + 2" (pointer_expression "*(undefined4 **)(local_a4 + 4)" * (cast_expression "(undefined4 **)(local_a4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a4 + 4)" ( (binary_expression "local_a4 + 4" identifier + number_literal) )))) = (binary_expression "puVar1 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_54 = (uint *)0x0;" (assignment_expression "local_54 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(uint ***)(puVar15 + -0xc) = &local_54;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = &local_54" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_bc;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_bc" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa209f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa209f" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (if_statement "if (!bVar23) goto LAB_000a20dc;" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (goto_statement "goto LAB_000a20dc;" goto statement_identifier ;)) })) (if_statement "if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }" if (parenthesized_expression "(param_5 != local_88)" ( (binary_expression "param_5 != local_88" identifier != identifier) )) (compound_statement "{\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }" { (expression_statement "local_94 = param_4;" (assignment_expression "local_94 = param_4" identifier = identifier) ;) (goto_statement "goto LAB_000a20bc;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }" else (compound_statement "{\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }" { (if_statement "if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }" if (parenthesized_expression "(local_88 == (uint *)0xffff)" ( (binary_expression "local_88 == (uint *)0xffff" identifier == (cast_expression "(uint *)0xffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }" { (expression_statement "uVar6 = param_4[0xc];" (assignment_expression "uVar6 = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }" { (expression_statement "uVar6 = *param_4;" (assignment_expression "uVar6 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "*(uint **)(puVar15 + -0x10) = param_4;" (assignment_expression "*(uint **)(puVar15 + -0x10) = param_4" (pointer_expression "*(uint **)(puVar15 + -0x10)" * (cast_expression "(uint **)(puVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(uVar6 + 0x6c);" (assignment_expression "pcVar2 = *(code **)(uVar6 + 0x6c)" identifier = (pointer_expression "*(code **)(uVar6 + 0x6c)" * (cast_expression "(code **)(uVar6 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar6 + 0x6c)" ( (binary_expression "uVar6 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa26de;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa26de" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = (*pcVar2)();" (assignment_expression "uVar6 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "param_4[0xc] = uVar6;" (assignment_expression "param_4[0xc] = uVar6" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "*(uint *)(puVar15 + -8) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -8) = uVar12" (pointer_expression "*(uint *)(puVar15 + -8)" * (cast_expression "(uint *)(puVar15 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0xc) = param_4;" (assignment_expression "*(uint **)(puVar15 + -0xc) = param_4" (pointer_expression "*(uint **)(puVar15 + -0xc)" * (cast_expression "(uint **)(puVar15 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar15 + -0x10) = uVar6;" (assignment_expression "*(uint *)(puVar15 + -0x10) = uVar6" (pointer_expression "*(uint *)(puVar15 + -0x10)" * (cast_expression "(uint *)(puVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa21e1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa21e1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_88 = (uint *)FUN_0028b7d0();" (assignment_expression "local_88 = (uint *)FUN_0028b7d0()" identifier = (cast_expression "(uint *)FUN_0028b7d0()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0028b7d0()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_000a2144;" goto statement_identifier ;) })) (expression_statement "uVar12 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar12 = *(uint *)(iVar16 + 4)" identifier = (pointer_expression "*(uint *)(iVar16 + 4)" * (cast_expression "(uint *)(iVar16 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);" (assignment_expression "puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" identifier = (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "local_98 = (int)puVar13 + local_90;" (assignment_expression "local_98 = (int)puVar13 + local_90" identifier = (binary_expression "(int)puVar13 + local_90" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }" if (parenthesized_expression "(local_a5 != '\0')" ( (binary_expression "local_a5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }" { (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_9c;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_9c" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa1ffe" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar11 = *(byte *)(iVar16 + 0xc);" (assignment_expression "bVar11 = *(byte *)(iVar16 + 0xc)" identifier = (pointer_expression "*(byte *)(iVar16 + 0xc)" * (cast_expression "(byte *)(iVar16 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (goto_statement "goto joined_r0x000a200c;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }" else (compound_statement "{\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(uVar12 < param_4[0x2c])" ( (binary_expression "uVar12 < param_4[0x2c]" identifier < (subscript_expression "param_4[0x2c]" identifier [ number_literal ])) )) (compound_statement "{\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }" { (expression_statement "local_5c = (uint *)0x0;" (assignment_expression "local_5c = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;" statement_identifier : (expression_statement "*(undefined ***)(puVar15 + -8) = local_8c + -0x65123;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_8c + -0x65123" (pointer_expression "*(undefined ***)(puVar15 + -8)" * (cast_expression "(undefined ***)(puVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "local_8c + -0x65123" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_8c + -0x19ca36" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2470;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2470" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar12 = uVar12 - param_4[0x2c];" (assignment_expression "uVar12 = uVar12 - param_4[0x2c]" identifier = (binary_expression "uVar12 - param_4[0x2c]" identifier - (subscript_expression "param_4[0x2c]" identifier [ number_literal ]))) ;) (expression_statement "local_84 = (uint **)param_4[0x30];" (assignment_expression "local_84 = (uint **)param_4[0x30]" identifier = (cast_expression "(uint **)param_4[0x30]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0x30]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }" if (parenthesized_expression "((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12)" ( (binary_expression "(uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12" (call_expression "(uint)((int)((int)local_84 - param_4[0x2f]) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)((int)local_84 - param_4[0x2f]) >> 2)" ( (binary_expression "(int)((int)local_84 - param_4[0x2f]) >> 2" (cast_expression "(int)((int)local_84 - param_4[0x2f])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_84 - param_4[0x2f])" ( (binary_expression "(int)local_84 - param_4[0x2f]" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_4[0x2f]" identifier [ number_literal ])) ))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)(puVar15 + -8) = local_8c + -0x65096;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_8c + -0x65096" (pointer_expression "*(undefined ***)(puVar15 + -8)" * (cast_expression "(undefined ***)(puVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "local_8c + -0x65096" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_8c + -0x19cc7b" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa294f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa294f" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);" (assignment_expression "local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4)" identifier = (pointer_expression "*(uint **)(param_4[0x2f] + uVar12 * 4)" * (cast_expression "(uint **)(param_4[0x2f] + uVar12 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4[0x2f] + uVar12 * 4)" ( (binary_expression "param_4[0x2f] + uVar12 * 4" (subscript_expression "param_4[0x2f]" identifier [ number_literal ]) + (binary_expression "uVar12 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (local_5c == (uint *)0x0) goto LAB_000a244f;" if (parenthesized_expression "(local_5c == (uint *)0x0)" ( (binary_expression "local_5c == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a244f;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }" if (parenthesized_expression "((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0)" ( (binary_expression "(*(byte *)((int)local_5c + 0x2a) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x2a) & 0x10)" ( (binary_expression "*(byte *)((int)local_5c + 0x2a) & 0x10" (pointer_expression "*(byte *)((int)local_5c + 0x2a)" * (cast_expression "(byte *)((int)local_5c + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x2a)" ( (binary_expression "(int)local_5c + 0x2a" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }" { (expression_statement "*(uint **)(puVar15 + -0xc) = local_5c;" (assignment_expression "*(uint **)(puVar15 + -0xc) = local_5c" (pointer_expression "*(uint **)(puVar15 + -0xc)" * (cast_expression "(uint **)(puVar15 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = param_2;" (assignment_expression "*(int *)(puVar15 + -0x10) = param_2" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa243a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa243a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_5c = (uint *)FUN_0034cd90();" (assignment_expression "local_5c = (uint *)FUN_0034cd90()" identifier = (cast_expression "(uint *)FUN_0034cd90()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034cd90()" identifier (argument_list "()" ( ))))) ;) })) (expression_statement "bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;" (assignment_expression "bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0" identifier = (binary_expression "(*(byte *)((int)local_5c + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_5c + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_5c + 0x2a)" * (cast_expression "(byte *)((int)local_5c + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x2a)" ( (binary_expression "(int)local_5c + 0x2a" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }" { (expression_statement "local_94 = (uint *)local_5c[2];" (assignment_expression "local_94 = (uint *)local_5c[2]" identifier = (cast_expression "(uint *)local_5c[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[2]" identifier [ number_literal ]))) ;) (expression_statement "bVar23 = (local_94[0xb] & 1) == 0;" (assignment_expression "bVar23 = (local_94[0xb] & 1) == 0" identifier = (binary_expression "(local_94[0xb] & 1) == 0" (parenthesized_expression "(local_94[0xb] & 1)" ( (binary_expression "local_94[0xb] & 1" (subscript_expression "local_94[0xb]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }" { (expression_statement "local_88 = (uint *)local_5c[3];" (assignment_expression "local_88 = (uint *)local_5c[3]" identifier = (cast_expression "(uint *)local_5c[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;" (assignment_expression "bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5" identifier = (binary_expression "*(byte *)((int)local_5c + 0x2b) >> 5" (pointer_expression "*(byte *)((int)local_5c + 0x2b)" * (cast_expression "(byte *)((int)local_5c + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x2b)" ( (binary_expression "(int)local_5c + 0x2b" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "local_a6 = bVar11 & 1;" (assignment_expression "local_a6 = bVar11 & 1" identifier = (binary_expression "bVar11 & 1" identifier & number_literal)) ;) (expression_statement "bVar23 = (bVar11 & 1) == 0;" (assignment_expression "bVar23 = (bVar11 & 1) == 0" identifier = (binary_expression "(bVar11 & 1) == 0" (parenthesized_expression "(bVar11 & 1)" ( (binary_expression "bVar11 & 1" identifier & number_literal) )) == number_literal)) ;) }) (else_clause "else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }" else (compound_statement "{\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }" { (expression_statement "local_a6 = 0;" (assignment_expression "local_a6 = 0" identifier = number_literal) ;) (expression_statement "local_88 = (uint *)0x0;" (assignment_expression "local_88 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_94 = (uint *)0x0;" (assignment_expression "local_94 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "puVar13 = (uint *)local_5c[0xc];" (assignment_expression "puVar13 = (uint *)local_5c[0xc]" identifier = (cast_expression "(uint *)local_5c[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[0xc]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }" else (compound_statement "{\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }" { (expression_statement "puVar13 = (uint *)local_5c[0xc];" (assignment_expression "puVar13 = (uint *)local_5c[0xc]" identifier = (cast_expression "(uint *)local_5c[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[0xc]" identifier [ number_literal ]))) ;) (expression_statement "local_a6 = 0;" (assignment_expression "local_a6 = 0" identifier = number_literal) ;) (expression_statement "local_88 = (uint *)0x0;" (assignment_expression "local_88 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_94 = (uint *)0x0;" (assignment_expression "local_94 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "local_98 = (int)puVar13 + local_90;" (assignment_expression "local_98 = (int)puVar13 + local_90" identifier = (binary_expression "(int)puVar13 + local_90" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "pbVar19 = (byte *)*local_5c;" (assignment_expression "pbVar19 = (byte *)*local_5c" identifier = (cast_expression "(byte *)*local_5c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_5c" * identifier))) ;) (expression_statement "iVar16 = 8;" (assignment_expression "iVar16 = 8" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)((int)local_8c + -0x19ca26);" (assignment_expression "pbVar17 = (byte *)((int)local_8c + -0x19ca26)" identifier = (cast_expression "(byte *)((int)local_8c + -0x19ca26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + -0x19ca26)" ( (binary_expression "(int)local_8c + -0x19ca26" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" identifier = identifier) ;) (do_statement "do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);" do (compound_statement "{\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar17 < *pbVar20;" (assignment_expression "bVar21 = *pbVar17 < *pbVar20" identifier = (binary_expression "*pbVar17 < *pbVar20" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar20;" (assignment_expression "bVar23 = *pbVar17 == *pbVar20" identifier = (binary_expression "*pbVar17 == *pbVar20" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar21 && !bVar23) == bVar21;" (assignment_expression "bVar23 = (!bVar21 && !bVar23) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar23) == bVar21" (parenthesized_expression "(!bVar21 && !bVar23)" ( (binary_expression "!bVar21 && !bVar23" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n          pbVar19 = pbVar19 + 8;\n        }" { (expression_statement "pbVar19 = pbVar19 + 8;" (assignment_expression "pbVar19 = pbVar19 + 8" identifier = (binary_expression "pbVar19 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }" else (compound_statement "{\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }" { (expression_statement "iVar16 = 7;" (assignment_expression "iVar16 = 7" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)((int)local_8c + -0x19ca1d);" (assignment_expression "pbVar17 = (byte *)((int)local_8c + -0x19ca1d)" identifier = (cast_expression "(byte *)((int)local_8c + -0x19ca1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + -0x19ca1d)" ( (binary_expression "(int)local_8c + -0x19ca1d" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" identifier = identifier) ;) (do_statement "do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);" do (compound_statement "{\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar17 < *pbVar20;" (assignment_expression "bVar22 = *pbVar17 < *pbVar20" identifier = (binary_expression "*pbVar17 < *pbVar20" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar20;" (assignment_expression "bVar23 = *pbVar17 == *pbVar20" identifier = (binary_expression "*pbVar17 == *pbVar20" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "pbVar19 = pbVar19 + 7;" (assignment_expression "pbVar19 = pbVar19 + 7" identifier = (binary_expression "pbVar19 + 7" identifier + number_literal)) ;) (if_statement "if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }" if (parenthesized_expression "((!bVar22 && !bVar23) != bVar22)" ( (binary_expression "(!bVar22 && !bVar23) != bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" ( (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) (compound_statement "{\n            pbVar19 = local_ac;\n          }" { (expression_statement "pbVar19 = local_ac;" (assignment_expression "pbVar19 = local_ac" identifier = identifier) ;) })) }))) (expression_statement "local_ac = pbVar19;" (assignment_expression "local_ac = pbVar19" identifier = identifier) ;) (if_statement "if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }" if (parenthesized_expression "(local_a5 != '\0')" ( (binary_expression "local_a5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }" { (if_statement "if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }" if (parenthesized_expression "(local_a6 == 0)" ( (binary_expression "local_a6 == 0" identifier == number_literal) )) (compound_statement "{\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }" { (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }" else (compound_statement "{\n            local_34 = local_94;\n            local_30 = local_88;\n          }" { (expression_statement "local_34 = local_94;" (assignment_expression "local_34 = local_94" identifier = identifier) ;) (expression_statement "local_30 = local_88;" (assignment_expression "local_30 = local_88" identifier = identifier) ;) }))) (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_9c;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_9c" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa22ed;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa22ed" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar1 = *(undefined4 **)(local_a0 + 4);" (assignment_expression "puVar1 = *(undefined4 **)(local_a0 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_a0 + 4)" * (cast_expression "(undefined4 **)(local_a0 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a0 + 4)" ( (binary_expression "local_a0 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }" if (parenthesized_expression "(puVar1 == *(undefined4 **)(local_a0 + 8))" ( (binary_expression "puVar1 == *(undefined4 **)(local_a0 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_a0 + 8)" * (cast_expression "(undefined4 **)(local_a0 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a0 + 8)" ( (binary_expression "local_a0 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }" { (expression_statement "*(uint ***)(puVar15 + -8) = &local_5c;" (assignment_expression "*(uint ***)(puVar15 + -8) = &local_5c" (pointer_expression "*(uint ***)(puVar15 + -8)" * (cast_expression "(uint ***)(puVar15 + -8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar15 + -0xc) = puVar1;" (assignment_expression "*(undefined4 **)(puVar15 + -0xc) = puVar1" (pointer_expression "*(undefined4 **)(puVar15 + -0xc)" * (cast_expression "(undefined4 **)(puVar15 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_a0;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a0" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2743;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2743" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000726c0();" (call_expression "FUN_000726c0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }" else (compound_statement "{\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }" { (expression_statement "*puVar1 = local_5c;" (assignment_expression "*puVar1 = local_5c" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(local_a0 + 4) = puVar1 + 1;" (assignment_expression "*(undefined4 **)(local_a0 + 4) = puVar1 + 1" (pointer_expression "*(undefined4 **)(local_a0 + 4)" * (cast_expression "(undefined4 **)(local_a0 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a0 + 4)" ( (binary_expression "local_a0 + 4" identifier + number_literal) )))) = (binary_expression "puVar1 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_b8;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_b8" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_2c = local_90;" (assignment_expression "local_2c = local_90" identifier = identifier) ;) (expression_statement "local_28 = (int)local_90 >> 0x1f;" (assignment_expression "local_28 = (int)local_90 >> 0x1f" identifier = (binary_expression "(int)local_90 >> 0x1f" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2338;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2338" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = puVar13;" (assignment_expression "local_34 = puVar13" identifier = identifier) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar12 = *param_7;" (assignment_expression "uVar12 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "puVar1 = *(undefined4 **)(local_a4 + 4);" (assignment_expression "puVar1 = *(undefined4 **)(local_a4 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_a4 + 4)" * (cast_expression "(undefined4 **)(local_a4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a4 + 4)" ( (binary_expression "local_a4 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier = (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }" if (parenthesized_expression "(puVar1 == *(undefined4 **)(local_a4 + 8))" ( (binary_expression "puVar1 == *(undefined4 **)(local_a4 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_a4 + 8)" * (cast_expression "(undefined4 **)(local_a4 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a4 + 8)" ( (binary_expression "local_a4 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }" { (expression_statement "*(uint ***)(puVar15 + -8) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -8) = local_84" (pointer_expression "*(uint ***)(puVar15 + -8)" * (cast_expression "(uint ***)(puVar15 + -8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar15 + -0xc) = puVar1;" (assignment_expression "*(undefined4 **)(puVar15 + -0xc) = puVar1" (pointer_expression "*(undefined4 **)(puVar15 + -0xc)" * (cast_expression "(undefined4 **)(puVar15 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_a4;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a4" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2702;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2702" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }" else (compound_statement "{\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }" { (expression_statement "*puVar1 = local_34;" (assignment_expression "*puVar1 = local_34" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_a4 + 4) = puVar1 + 2;" (assignment_expression "*(undefined4 **)(local_a4 + 4) = puVar1 + 2" (pointer_expression "*(undefined4 **)(local_a4 + 4)" * (cast_expression "(undefined4 **)(local_a4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a4 + 4)" ( (binary_expression "local_a4 + 4" identifier + number_literal) )))) = (binary_expression "puVar1 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_54 = (uint *)0x0;" (assignment_expression "local_54 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(uint ***)(puVar15 + -0xc) = &local_54;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = &local_54" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)(puVar15 + -0x10) = local_bc;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_bc" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2380;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2380" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_a6 == 0) goto LAB_000a20dc;" if (parenthesized_expression "(local_a6 == 0)" ( (binary_expression "local_a6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a20dc;" goto statement_identifier ;)) (labeled_statement "LAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }" statement_identifier : (if_statement "if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(*(int *)(*local_b0 + 8) == 0)" ( (binary_expression "*(int *)(*local_b0 + 8) == 0" (pointer_expression "*(int *)(*local_b0 + 8)" * (cast_expression "(int *)(*local_b0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b0 + 8)" ( (binary_expression "*local_b0 + 8" (pointer_expression "*local_b0" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf" (pointer_expression "*(undefined ***)(puVar15 + -8)" * (cast_expression "(undefined ***)(puVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "local_8c + -0x64ebf" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa292e;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa292e" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_b0 + 8) + 0x18b1)" * (cast_expression "(char *)(*(int *)(*local_b0 + 8) + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_b0 + 8) + 0x18b1)" ( (binary_expression "*(int *)(*local_b0 + 8) + 0x18b1" (pointer_expression "*(int *)(*local_b0 + 8)" * (cast_expression "(int *)(*local_b0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b0 + 8)" ( (binary_expression "*local_b0 + 8" (pointer_expression "*local_b0" * identifier) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }" { (expression_statement "local_5c = param_4;" (assignment_expression "local_5c = param_4" identifier = identifier) ;) (expression_statement "iVar16 = *(int *)(param_2 + 0x158) + 0x14;" (assignment_expression "iVar16 = *(int *)(param_2 + 0x158) + 0x14" identifier = (binary_expression "*(int *)(param_2 + 0x158) + 0x14" (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_58 = param_5;" (assignment_expression "local_58 = param_5" identifier = identifier) ;) (expression_statement "local_54 = local_94;" (assignment_expression "local_54 = local_94" identifier = identifier) ;) (expression_statement "local_50 = local_88;" (assignment_expression "local_50 = local_88" identifier = identifier) ;) (expression_statement "iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);" (assignment_expression "iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18)" identifier = (pointer_expression "*(int *)(*(int *)(param_2 + 0x158) + 0x18)" * (cast_expression "(int *)(*(int *)(param_2 + 0x158) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x158) + 0x18)" ( (binary_expression "*(int *)(param_2 + 0x158) + 0x18" (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar8 = iVar16;" (assignment_expression "iVar8 = iVar16" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }" { (labeled_statement "LAB_000a24e0:\n            local_64 = &local_5c;" statement_identifier : (expression_statement "local_64 = &local_5c;" (assignment_expression "local_64 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;)) (expression_statement "*(uint ****)(puVar15 + -0x10) = &local_64;" (assignment_expression "*(uint ****)(puVar15 + -0x10) = &local_64" (pointer_expression "*(uint ****)(puVar15 + -0x10)" * (cast_expression "(uint ****)(puVar15 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa24f8;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa24f8" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00097a00();" (call_expression "FUN_00097a00()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = local_70;" (assignment_expression "iVar9 = local_70" identifier = identifier) ;) }) (else_clause "else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }" else (compound_statement "{\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }" { (do_statement "do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);" do (compound_statement "{\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            }" { (while_statement "while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }" while (parenthesized_expression "((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     )))" ( (parenthesized_expression "(iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))" ( (comma_expression "iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     )" (assignment_expression "iVar9 = iVar4" identifier = identifier) , (binary_expression "param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     )" (binary_expression "param_4 <= *(uint **)(iVar9 + 0x10)" identifier <= (pointer_expression "*(uint **)(iVar9 + 0x10)" * (cast_expression "(uint **)(iVar9 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     )" ( (parenthesized_expression "(param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))" ( (binary_expression "param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14))" (binary_expression "param_4 != *(uint **)(iVar9 + 0x10)" identifier != (pointer_expression "*(uint **)(iVar9 + 0x10)" * (cast_expression "(uint **)(iVar9 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) || (parenthesized_expression "(param_5 <= *(uint **)(iVar9 + 0x14))" ( (binary_expression "param_5 <= *(uint **)(iVar9 + 0x14)" identifier <= (pointer_expression "*(uint **)(iVar9 + 0x14)" * (cast_expression "(uint **)(iVar9 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }" { (expression_statement "iVar4 = *(int *)(iVar9 + 8);" (assignment_expression "iVar4 = *(int *)(iVar9 + 8)" identifier = (pointer_expression "*(int *)(iVar9 + 8)" * (cast_expression "(int *)(iVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = iVar9;" (assignment_expression "iVar8 = iVar9" identifier = identifier) ;) (if_statement "if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;" if (parenthesized_expression "(*(int *)(iVar9 + 8) == 0)" ( (binary_expression "*(int *)(iVar9 + 8) == 0" (pointer_expression "*(int *)(iVar9 + 8)" * (cast_expression "(int *)(iVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000a24ca;" goto statement_identifier ;)) })) (expression_statement "piVar14 = (int *)(iVar9 + 0xc);" (assignment_expression "piVar14 = (int *)(iVar9 + 0xc)" identifier = (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) ;) (expression_statement "iVar4 = *piVar14;" (assignment_expression "iVar4 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "iVar9 = iVar8;" (assignment_expression "iVar9 = iVar8" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar14 != 0)" ( (binary_expression "*piVar14 != 0" (pointer_expression "*piVar14" * identifier) != number_literal) )) ;) (labeled_statement "LAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;" statement_identifier : (if_statement "if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;" if (parenthesized_expression "(((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))" ( (binary_expression "((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14))))" (parenthesized_expression "((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10)))" ( (binary_expression "(iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))" (parenthesized_expression "(iVar16 == iVar9)" ( (binary_expression "iVar16 == iVar9" identifier == identifier) )) || (parenthesized_expression "(param_4 < *(uint **)(iVar9 + 0x10))" ( (binary_expression "param_4 < *(uint **)(iVar9 + 0x10)" identifier < (pointer_expression "*(uint **)(iVar9 + 0x10)" * (cast_expression "(uint **)(iVar9 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14))))" ( (parenthesized_expression "(param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))" ( (binary_expression "param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14))" (binary_expression "param_4 == *(uint **)(iVar9 + 0x10)" identifier == (pointer_expression "*(uint **)(iVar9 + 0x10)" * (cast_expression "(uint **)(iVar9 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "(param_5 < *(uint **)(iVar9 + 0x14))" ( (binary_expression "param_5 < *(uint **)(iVar9 + 0x14)" identifier < (pointer_expression "*(uint **)(iVar9 + 0x14)" * (cast_expression "(uint **)(iVar9 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_000a24e0;" goto statement_identifier ;))) }))) (expression_statement "local_68 = iVar9 + 0x18;" (assignment_expression "local_68 = iVar9 + 0x18" identifier = (binary_expression "iVar9 + 0x18" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)(puVar15 + -0x14) = local_c4;" (assignment_expression "*(int **)(puVar15 + -0x14) = local_c4" (pointer_expression "*(int **)(puVar15 + -0x14)" * (cast_expression "(int **)(puVar15 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)(puVar15 + -0x18) = &local_54;" (assignment_expression "*(uint ***)(puVar15 + -0x18) = &local_54" (pointer_expression "*(uint ***)(puVar15 + -0x18)" * (cast_expression "(uint ***)(puVar15 + -0x18)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)(puVar15 + -0x1c) = local_68;" (assignment_expression "*(int *)(puVar15 + -0x1c) = local_68" (pointer_expression "*(int *)(puVar15 + -0x1c)" * (cast_expression "(int *)(puVar15 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = local_c0;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = local_c0" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" * (cast_expression "(undefined1 **)(puVar15 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0xa2521;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0xa2521" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar14 = *(int **)(*local_b0 + 0xc);" (assignment_expression "piVar14 = *(int **)(*local_b0 + 0xc)" identifier = (pointer_expression "*(int **)(*local_b0 + 0xc)" * (cast_expression "(int **)(*local_b0 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_b0 + 0xc)" ( (binary_expression "*local_b0 + 0xc" (pointer_expression "*local_b0" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;" (assignment_expression "*(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082" (pointer_expression "*(undefined ***)(puVar15 + -0xc)" * (cast_expression "(undefined ***)(puVar15 + -0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "local_8c + -0x65082" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0xa296d;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0xa296d" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppuVar18 = *(undefined ***)(*piVar14 + 0x104);" (assignment_expression "ppuVar18 = *(undefined ***)(*piVar14 + 0x104)" identifier = (pointer_expression "*(undefined ***)(*piVar14 + 0x104)" * (cast_expression "(undefined ***)(*piVar14 + 0x104)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar14 + 0x104)" ( (binary_expression "*piVar14 + 0x104" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }" if (parenthesized_expression "(ppuVar18 != local_8c + -0x1510f0)" ( (binary_expression "ppuVar18 != local_8c + -0x1510f0" identifier != (binary_expression "local_8c + -0x1510f0" identifier + number_literal)) )) (compound_statement "{\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }" { (expression_statement "*(int *)(puVar15 + -0xc) = local_98;" (assignment_expression "*(int *)(puVar15 + -0xc) = local_98" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x10) = local_88;" (assignment_expression "*(uint **)(puVar15 + -0x10) = local_88" (pointer_expression "*(uint **)(puVar15 + -0x10)" * (cast_expression "(uint **)(puVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x14) = local_94;" (assignment_expression "*(uint **)(puVar15 + -0x14) = local_94" (pointer_expression "*(uint **)(puVar15 + -0x14)" * (cast_expression "(uint **)(puVar15 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x18) = param_5;" (assignment_expression "*(uint **)(puVar15 + -0x18) = param_5" (pointer_expression "*(uint **)(puVar15 + -0x18)" * (cast_expression "(uint **)(puVar15 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x1c) = param_4;" (assignment_expression "*(uint **)(puVar15 + -0x1c) = param_4" (pointer_expression "*(uint **)(puVar15 + -0x1c)" * (cast_expression "(uint **)(puVar15 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x20) = param_2;" (assignment_expression "*(int *)(puVar15 + -0x20) = param_2" (pointer_expression "*(int *)(puVar15 + -0x20)" * (cast_expression "(int *)(puVar15 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x24) = piVar14;" (assignment_expression "*(int **)(puVar15 + -0x24) = piVar14" (pointer_expression "*(int **)(puVar15 + -0x24)" * (cast_expression "(int **)(puVar15 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = 0xa26c1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = 0xa26c1" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar18)();" (call_expression "(*(code *)ppuVar18)()" (parenthesized_expression "(*(code *)ppuVar18)" ( (pointer_expression "*(code *)ppuVar18" * (cast_expression "(code *)ppuVar18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "pbVar19 = local_ac;" (assignment_expression "pbVar19 = local_ac" identifier = identifier) ;) (expression_statement "piVar14 = (int *)(puVar15 + -4);" (assignment_expression "piVar14 = (int *)(puVar15 + -4)" identifier = (cast_expression "(int *)(puVar15 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) ;) (if_statement "if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }" if (parenthesized_expression "(local_ac != (byte *)0x0)" ( (binary_expression "local_ac != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }" { (expression_statement "local_88 = &local_2c;" (assignment_expression "local_88 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "iVar16 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar16 = *(int *)(param_2 + 0x158)" identifier = (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar15 + -0x14) = local_ac;" (assignment_expression "*(byte **)(puVar15 + -0x14) = local_ac" (pointer_expression "*(byte **)(puVar15 + -0x14)" * (cast_expression "(byte **)(puVar15 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0xa258d;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0xa258d" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = local_88;" (assignment_expression "local_34 = local_88" identifier = identifier) ;) (expression_statement "sVar5 = strlen(*(char **)(puVar15 + -0x14));" (assignment_expression "sVar5 = strlen(*(char **)(puVar15 + -0x14))" identifier = (call_expression "strlen(*(char **)(puVar15 + -0x14))" identifier (argument_list "(*(char **)(puVar15 + -0x14))" ( (pointer_expression "*(char **)(puVar15 + -0x14)" * (cast_expression "(char **)(puVar15 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) )))) ;) (expression_statement "ppuVar3 = local_84;" (assignment_expression "ppuVar3 = local_84" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;" (assignment_expression "*(byte **)(puVar15 + -0xc) = pbVar19 + sVar5" (pointer_expression "*(byte **)(puVar15 + -0xc)" * (cast_expression "(byte **)(puVar15 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "pbVar19 + sVar5" identifier + identifier)) ;) (expression_statement "*(byte **)(puVar15 + -0x10) = pbVar19;" (assignment_expression "*(byte **)(puVar15 + -0x10) = pbVar19" (pointer_expression "*(byte **)(puVar15 + -0x10)" * (cast_expression "(byte **)(puVar15 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)(puVar15 + -0x14) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0x14) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0x14)" * (cast_expression "(uint ***)(puVar15 + -0x14)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0xa259f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0xa259f" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(uint ***)(puVar15 + -0xc) = ppuVar3;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = ppuVar3" (pointer_expression "*(uint ***)(puVar15 + -0xc)" * (cast_expression "(uint ***)(puVar15 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = iVar16 + 0x44;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar16 + 0x44" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "iVar16 + 0x44" identifier + number_literal)) ;) (expression_statement "*(int **)(puVar15 + -0x14) = &local_80;" (assignment_expression "*(int **)(puVar15 + -0x14) = &local_80" (pointer_expression "*(int **)(puVar15 + -0x14)" * (cast_expression "(int **)(puVar15 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_80" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0xa25b0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0xa25b0" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00094bd0();" (call_expression "FUN_00094bd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar16 = local_80;" (assignment_expression "iVar16 = local_80" identifier = identifier) ;) (if_statement "if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }" if (parenthesized_expression "(local_34 != local_88)" ( (binary_expression "local_34 != local_88" identifier != identifier) )) (compound_statement "{\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }" { (expression_statement "*(uint **)(puVar15 + -0x18) = local_34;" (assignment_expression "*(uint **)(puVar15 + -0x18) = local_34" (pointer_expression "*(uint **)(puVar15 + -0x18)" * (cast_expression "(uint **)(puVar15 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0xa25d0" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar4 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar4 = *(int *)(param_2 + 0x158)" identifier = (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "piVar14 = (int *)(puVar15 + -8);" (assignment_expression "piVar14 = (int *)(puVar15 + -8)" identifier = (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) ;) (if_statement "if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }" if (parenthesized_expression "(iVar16 != iVar4 + 0x48)" ( (binary_expression "iVar16 != iVar4 + 0x48" identifier != (binary_expression "iVar4 + 0x48" identifier + number_literal)) )) (compound_statement "{\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }" { (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = param_5;" (assignment_expression "local_30 = param_5" identifier = identifier) ;) (expression_statement "iVar8 = *(int *)(iVar4 + 0x18);" (assignment_expression "iVar8 = *(int *)(iVar4 + 0x18)" identifier = (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar4 + 0x14;" (assignment_expression "iVar9 = iVar4 + 0x14" identifier = (binary_expression "iVar4 + 0x14" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }" if (parenthesized_expression "(*(int *)(iVar4 + 0x18) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x18) == 0" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }" { (labeled_statement "LAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;" statement_identifier : (expression_statement "*(uint ****)(puVar15 + -0x18) = &local_60;" (assignment_expression "*(uint ****)(puVar15 + -0x18) = &local_60" (pointer_expression "*(uint ****)(puVar15 + -0x18)" * (cast_expression "(uint ****)(puVar15 + -0x18)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_60" & identifier)) ;)) (expression_statement "local_60 = local_84;" (assignment_expression "local_60 = local_84" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0xa2658;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0xa2658" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00097a00();" (call_expression "FUN_00097a00()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = local_70;" (assignment_expression "iVar10 = local_70" identifier = identifier) ;) }) (else_clause "else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }" else (compound_statement "{\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }" { (do_statement "do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);" do (compound_statement "{\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                }" { (while_statement "while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }" while (parenthesized_expression "((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))))))" ( (parenthesized_expression "(iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))" ( (comma_expression "iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar8" identifier = identifier) , (binary_expression "param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(uint **)(iVar10 + 0x10)" identifier <= (pointer_expression "*(uint **)(iVar10 + 0x10)" * (cast_expression "(uint **)(iVar10 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))" ( (binary_expression "param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))" (binary_expression "param_4 != *(uint **)(iVar10 + 0x10)" identifier != (pointer_expression "*(uint **)(iVar10 + 0x10)" * (cast_expression "(uint **)(iVar10 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) || (parenthesized_expression "(param_5 <= *(uint **)(iVar10 + 0x14))" ( (binary_expression "param_5 <= *(uint **)(iVar10 + 0x14)" identifier <= (pointer_expression "*(uint **)(iVar10 + 0x14)" * (cast_expression "(uint **)(iVar10 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }" { (expression_statement "iVar8 = *(int *)(iVar10 + 8);" (assignment_expression "iVar8 = *(int *)(iVar10 + 8)" identifier = (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar10;" (assignment_expression "iVar9 = iVar10" identifier = identifier) ;) (if_statement "if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;" if (parenthesized_expression "(*(int *)(iVar10 + 8) == 0)" ( (binary_expression "*(int *)(iVar10 + 8) == 0" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000a262a;" goto statement_identifier ;)) })) (expression_statement "piVar14 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar14 = (int *)(iVar10 + 0xc)" identifier = (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) ;) (expression_statement "iVar8 = *piVar14;" (assignment_expression "iVar8 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar14 != 0)" ( (binary_expression "*piVar14 != 0" (pointer_expression "*piVar14" * identifier) != number_literal) )) ;) (labeled_statement "LAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;" statement_identifier : (if_statement "if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;" if (parenthesized_expression "(((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   )" ( (binary_expression "((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))" (parenthesized_expression "((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10)))" ( (binary_expression "(iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))" (parenthesized_expression "(iVar10 == iVar4 + 0x14)" ( (binary_expression "iVar10 == iVar4 + 0x14" identifier == (binary_expression "iVar4 + 0x14" identifier + number_literal)) )) || (parenthesized_expression "(param_4 < *(uint **)(iVar10 + 0x10))" ( (binary_expression "param_4 < *(uint **)(iVar10 + 0x10)" identifier < (pointer_expression "*(uint **)(iVar10 + 0x10)" * (cast_expression "(uint **)(iVar10 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14)))" ( (binary_expression "param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))" (binary_expression "param_4 == *(uint **)(iVar10 + 0x10)" identifier == (pointer_expression "*(uint **)(iVar10 + 0x10)" * (cast_expression "(uint **)(iVar10 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "(param_5 < *(uint **)(iVar10 + 0x14))" ( (binary_expression "param_5 < *(uint **)(iVar10 + 0x14)" identifier < (pointer_expression "*(uint **)(iVar10 + 0x14)" * (cast_expression "(uint **)(iVar10 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_000a2640;" goto statement_identifier ;))) }))) (expression_statement "piVar14 = (int *)(puVar15 + -8);" (assignment_expression "piVar14 = (int *)(puVar15 + -8)" identifier = (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) ;) (expression_statement "puVar15 = puVar15 + -8;" (assignment_expression "puVar15 = puVar15 + -8" identifier = (binary_expression "puVar15 + -8" identifier + number_literal)) ;) (for_statement "for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }" for ( (assignment_expression "puVar1 = *(undefined4 **)(iVar16 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar16 + 0x30)" * (cast_expression "(undefined4 **)(iVar16 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x30)" ( (binary_expression "iVar16 + 0x30" identifier + number_literal) ))))) ; (binary_expression "puVar1 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar1 = (undefined4 *)*puVar1" identifier = (cast_expression "(undefined4 *)*puVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ) (compound_statement "{\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }" { (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)(puVar15 + -0x14) = &local_6c;" (assignment_expression "*(int **)(puVar15 + -0x14) = &local_6c" (pointer_expression "*(int **)(puVar15 + -0x14)" * (cast_expression "(int **)(puVar15 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;" (assignment_expression "*(undefined4 **)(puVar15 + -0x18) = puVar1 + 1" (pointer_expression "*(undefined4 **)(puVar15 + -0x18)" * (cast_expression "(undefined4 **)(puVar15 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar1 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar15 + -0x1c) = iVar10 + 0x18;" (assignment_expression "*(int *)(puVar15 + -0x1c) = iVar10 + 0x18" (pointer_expression "*(int *)(puVar15 + -0x1c)" * (cast_expression "(int *)(puVar15 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (binary_expression "iVar10 + 0x18" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = local_c0;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = local_c0" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" * (cast_expression "(undefined1 **)(puVar15 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0xa268b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0xa268b" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_6c = iVar10 + 0x18;" (assignment_expression "local_6c = iVar10 + 0x18" identifier = (binary_expression "iVar10 + 0x18" identifier + number_literal)) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar14 = (int *)(puVar15 + -4);" (assignment_expression "piVar14 = (int *)(puVar15 + -4)" identifier = (cast_expression "(int *)(puVar15 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) ;) (expression_statement "puVar15 = puVar15 + -4;" (assignment_expression "puVar15 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) })) })) })) }))) (labeled_statement "LAB_000a20dc:\n      local_b4 = local_b4 + 1;" statement_identifier : (expression_statement "local_b4 = local_b4 + 1;" (assignment_expression "local_b4 = local_b4 + 1" identifier = (binary_expression "local_b4 + 1" identifier + number_literal)) ;)) (expression_statement "param_7 = param_7 + 3;" (assignment_expression "param_7 = param_7 + 3" identifier = (binary_expression "param_7 + 3" identifier + number_literal)) ;) (expression_statement "puVar15 = (undefined1 *)piVar14;" (assignment_expression "puVar15 = (undefined1 *)piVar14" identifier = (cast_expression "(undefined1 *)piVar14" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(param_8 != local_b4)" ( (binary_expression "param_8 != local_b4" identifier != identifier) )) ;) })) (if_statement "if (local_4c[0] != local_c8) {\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_4c[0] != local_c8)" ( (binary_expression "local_4c[0] != local_c8" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }" { (expression_statement "*(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];" (assignment_expression "*(undefined1 **)((int)piVar14 + -0x10) = local_4c[0]" (pointer_expression "*(undefined1 **)((int)piVar14 + -0x10)" * (cast_expression "(undefined1 **)((int)piVar14 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar14 + -0x10)" ( (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa278a" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + -0x14)" ( (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " ") , (string_literal " ") ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;)) (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 = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (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) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (binary_expression (parenthesized_expression ( IDENT )) * 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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 (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 = BOOL) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (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 *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 = BOOL) ;) (goto_statement goto statement_identifier ;) })) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (subscript_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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (subscript_expression IDENT [ LIT ])) ))) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == 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 *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_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 (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 = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (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 ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (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 *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 (pointer_expression * IDENT) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = 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 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + 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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = 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 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + 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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) || (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) })) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_000a1eb0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *param_5,\n                 undefined4 param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10\n                 ,uint param_11,int param_12)\n\n{\n  undefined4 *puVar1;\n  code *pcVar2;\n  uint **ppuVar3;\n  int iVar4;\n  size_t sVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  byte bVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  undefined1 *puVar15;\n  int iVar16;\n  byte *pbVar17;\n  undefined **ppuVar18;\n  byte *pbVar19;\n  undefined4 unaff_EDI;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  int iStack_d0;\n  undefined1 auStack_cc [4];\n  undefined1 *local_c8;\n  int *local_c4;\n  undefined1 *local_c0;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int *local_b0;\n  byte *local_ac;\n  byte local_a6;\n  char local_a5;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  uint *local_94;\n  uint local_90;\n  undefined **local_8c;\n  uint *local_88;\n  uint **local_84;\n  int local_80;\n  undefined1 local_7c [12];\n  int local_70;\n  int local_6c;\n  int local_68;\n  uint **local_64;\n  uint **local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar24 = 0;\n  local_8c = &__DT_PLTGOT;\n  local_b0 = &DAT_005ea7c8;\n  iVar16 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar16 == 0) {\n    iStack_d0 = iVar16;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar16 + 0x5934) == 0) {\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }\n  puVar15 = local_4c[0];\n  iVar4 = *local_b0;\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0) {\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }\n  else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }\n  if (param_8 != 0) {\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }\n  if (local_4c[0] != local_c8) {\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000a1eb0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *param_5,\n                 undefined4 param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10\n                 ,uint param_11,int param_12)" (identifier "FUN_000a1eb0") (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *param_5,\n                 undefined4 param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10\n                 ,uint param_11,int param_12)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "uint *param_4" (type_identifier "uint") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "uint *param_5" (type_identifier "uint") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "uint *param_7" (type_identifier "uint") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) (, ",") (parameter_declaration "undefined4 param_9" (type_identifier "undefined4") (identifier "param_9")) (, ",") (parameter_declaration "undefined4 param_10" (type_identifier "undefined4") (identifier "param_10")) (, ",") (parameter_declaration "uint param_11" (type_identifier "uint") (identifier "param_11")) (, ",") (parameter_declaration "int param_12" (primitive_type "int") (identifier "param_12")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  code *pcVar2;\n  uint **ppuVar3;\n  int iVar4;\n  size_t sVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  byte bVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  undefined1 *puVar15;\n  int iVar16;\n  byte *pbVar17;\n  undefined **ppuVar18;\n  byte *pbVar19;\n  undefined4 unaff_EDI;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  int iStack_d0;\n  undefined1 auStack_cc [4];\n  undefined1 *local_c8;\n  int *local_c4;\n  undefined1 *local_c0;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int *local_b0;\n  byte *local_ac;\n  byte local_a6;\n  char local_a5;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  uint *local_94;\n  uint local_90;\n  undefined **local_8c;\n  uint *local_88;\n  uint **local_84;\n  int local_80;\n  undefined1 local_7c [12];\n  int local_70;\n  int local_6c;\n  int local_68;\n  uint **local_64;\n  uint **local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar24 = 0;\n  local_8c = &__DT_PLTGOT;\n  local_b0 = &DAT_005ea7c8;\n  iVar16 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar16 == 0) {\n    iStack_d0 = iVar16;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar16 + 0x5934) == 0) {\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }\n  puVar15 = local_4c[0];\n  iVar4 = *local_b0;\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0) {\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }\n  else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar4 + 8) == 0) {\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }\n  if (param_8 != 0) {\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }\n  if (local_4c[0] != local_c8) {\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "code *pcVar2;" (type_identifier "code") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "uint **ppuVar3;" (type_identifier "uint") (pointer_declarator "**ppuVar3" (* "*") (pointer_declarator "*ppuVar3" (* "*") (identifier "ppuVar3"))) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "size_t sVar5;" (primitive_type "size_t") (identifier "sVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined1 *puVar7;" (type_identifier "undefined1") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int extraout_ECX;" (primitive_type "int") (identifier "extraout_ECX") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int extraout_ECX_00;" (primitive_type "int") (identifier "extraout_ECX_00") (; ";")) (declaration "int extraout_ECX_01;" (primitive_type "int") (identifier "extraout_ECX_01") (; ";")) (declaration "int extraout_ECX_02;" (primitive_type "int") (identifier "extraout_ECX_02") (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint *puVar13;" (type_identifier "uint") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "undefined **ppuVar18;" (type_identifier "undefined") (pointer_declarator "**ppuVar18" (* "*") (pointer_declarator "*ppuVar18" (* "*") (identifier "ppuVar18"))) (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "undefined4 unaff_EDI;" (type_identifier "undefined4") (identifier "unaff_EDI") (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "bool bVar21;" (primitive_type "bool") (identifier "bVar21") (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "byte bVar24;" (type_identifier "byte") (identifier "bVar24") (; ";")) (declaration "int iStack_d0;" (primitive_type "int") (identifier "iStack_d0") (; ";")) (declaration "undefined1 auStack_cc [4];" (type_identifier "undefined1") (array_declarator "auStack_cc [4]" (identifier "auStack_cc") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 *local_c8;" (type_identifier "undefined1") (pointer_declarator "*local_c8" (* "*") (identifier "local_c8")) (; ";")) (declaration "int *local_c4;" (primitive_type "int") (pointer_declarator "*local_c4" (* "*") (identifier "local_c4")) (; ";")) (declaration "undefined1 *local_c0;" (type_identifier "undefined1") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0")) (; ";")) (declaration "int local_bc;" (primitive_type "int") (identifier "local_bc") (; ";")) (declaration "int local_b8;" (primitive_type "int") (identifier "local_b8") (; ";")) (declaration "int local_b4;" (primitive_type "int") (identifier "local_b4") (; ";")) (declaration "int *local_b0;" (primitive_type "int") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0")) (; ";")) (declaration "byte *local_ac;" (type_identifier "byte") (pointer_declarator "*local_ac" (* "*") (identifier "local_ac")) (; ";")) (declaration "byte local_a6;" (type_identifier "byte") (identifier "local_a6") (; ";")) (declaration "char local_a5;" (primitive_type "char") (identifier "local_a5") (; ";")) (declaration "int local_a4;" (primitive_type "int") (identifier "local_a4") (; ";")) (declaration "int local_a0;" (primitive_type "int") (identifier "local_a0") (; ";")) (declaration "int local_9c;" (primitive_type "int") (identifier "local_9c") (; ";")) (declaration "int local_98;" (primitive_type "int") (identifier "local_98") (; ";")) (declaration "uint *local_94;" (type_identifier "uint") (pointer_declarator "*local_94" (* "*") (identifier "local_94")) (; ";")) (declaration "uint local_90;" (type_identifier "uint") (identifier "local_90") (; ";")) (declaration "undefined **local_8c;" (type_identifier "undefined") (pointer_declarator "**local_8c" (* "*") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c"))) (; ";")) (declaration "uint *local_88;" (type_identifier "uint") (pointer_declarator "*local_88" (* "*") (identifier "local_88")) (; ";")) (declaration "uint **local_84;" (type_identifier "uint") (pointer_declarator "**local_84" (* "*") (pointer_declarator "*local_84" (* "*") (identifier "local_84"))) (; ";")) (declaration "int local_80;" (primitive_type "int") (identifier "local_80") (; ";")) (declaration "undefined1 local_7c [12];" (type_identifier "undefined1") (array_declarator "local_7c [12]" (identifier "local_7c") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "int local_6c;" (primitive_type "int") (identifier "local_6c") (; ";")) (declaration "int local_68;" (primitive_type "int") (identifier "local_68") (; ";")) (declaration "uint **local_64;" (type_identifier "uint") (pointer_declarator "**local_64" (* "*") (pointer_declarator "*local_64" (* "*") (identifier "local_64"))) (; ";")) (declaration "uint **local_60;" (type_identifier "uint") (pointer_declarator "**local_60" (* "*") (pointer_declarator "*local_60" (* "*") (identifier "local_60"))) (; ";")) (declaration "uint *local_5c;" (type_identifier "uint") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "uint *local_58;" (type_identifier "uint") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "uint *local_54;" (type_identifier "uint") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "uint *local_50;" (type_identifier "uint") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "undefined1 *local_4c [2];" (type_identifier "undefined1") (pointer_declarator "*local_4c [2]" (* "*") (array_declarator "local_4c [2]" (identifier "local_4c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_44 [16];" (type_identifier "undefined1") (array_declarator "local_44 [16]" (identifier "local_44") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "uint *local_34;" (type_identifier "uint") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "uint *local_30;" (type_identifier "uint") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" (identifier "bVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_8c = &__DT_PLTGOT;" (assignment_expression "local_8c = &__DT_PLTGOT" (identifier "local_8c") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_b0 = &DAT_005ea7c8;" (assignment_expression "local_b0 = &DAT_005ea7c8" (identifier "local_b0") (= "=") (pointer_expression "&DAT_005ea7c8" (& "&") (identifier "DAT_005ea7c8"))) (; ";")) (expression_statement "iVar16 = *(int *)(DAT_005ea7c8 + 8);" (assignment_expression "iVar16 = *(int *)(DAT_005ea7c8 + 8)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" (* "*") (cast_expression "(int *)(DAT_005ea7c8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 8)" (( "(") (binary_expression "DAT_005ea7c8 + 8" (identifier "DAT_005ea7c8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar16 == 0) {\n    iStack_d0 = iVar16;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iStack_d0 = iVar16;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (expression_statement "iStack_d0 = iVar16;" (assignment_expression "iStack_d0 = iVar16" (identifier "iStack_d0") (= "=") (identifier "iVar16")) (; ";")) (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_002446e0") (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 *)(iVar16 + 0x5934) == 0) {\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar16 + 0x5934) == 0)" (( "(") (binary_expression "*(int *)(iVar16 + 0x5934) == 0" (pointer_expression "*(int *)(iVar16 + 0x5934)" (* "*") (cast_expression "(int *)(iVar16 + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x5934)" (( "(") (binary_expression "iVar16 + 0x5934" (identifier "iVar16") (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_c8 = local_44;\n    iStack_d0 = 0;\n    local_4c[0] = local_c8;\n    FUN_00072b90(local_4c,"","");\n    piVar14 = (int *)auStack_cc;\n    iVar16 = extraout_ECX_00;\n  }" ({ "{") (expression_statement "local_c8 = local_44;" (assignment_expression "local_c8 = local_44" (identifier "local_c8") (= "=") (identifier "local_44")) (; ";")) (expression_statement "iStack_d0 = 0;" (assignment_expression "iStack_d0 = 0" (identifier "iStack_d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c[0] = local_c8;" (assignment_expression "local_4c[0] = local_c8" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_c8")) (; ";")) (expression_statement "FUN_00072b90(local_4c,"","");" (call_expression "FUN_00072b90(local_4c,"","")" (identifier "FUN_00072b90") (argument_list "(local_4c,"","")" (( "(") (identifier "local_4c") (, ",") (string_literal """" (" """) (" """)) (, ",") (string_literal """" (" """) (" """)) () ")"))) (; ";")) (expression_statement "piVar14 = (int *)auStack_cc;" (assignment_expression "piVar14 = (int *)auStack_cc" (identifier "piVar14") (= "=") (cast_expression "(int *)auStack_cc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_cc"))) (; ";")) (expression_statement "iVar16 = extraout_ECX_00;" (assignment_expression "iVar16 = extraout_ECX_00" (identifier "iVar16") (= "=") (identifier "extraout_ECX_00")) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }" (else "else") (compound_statement "{\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_c8 = local_44;\n    piVar14 = &iStack_d0;\n    iVar16 = extraout_ECX;\n  }" ({ "{") (expression_statement "(**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);" (call_expression "(**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5)" (parenthesized_expression "(**(code **)(*param_4 + 0x40))" (( "(") (pointer_expression "**(code **)(*param_4 + 0x40)" (* "*") (pointer_expression "*(code **)(*param_4 + 0x40)" (* "*") (cast_expression "(code **)(*param_4 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_4 + 0x40)" (( "(") (binary_expression "*param_4 + 0x40" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (argument_list "(local_4c,param_4,param_5)" (( "(") (identifier "local_4c") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "local_c8 = local_44;" (assignment_expression "local_c8 = local_44" (identifier "local_c8") (= "=") (identifier "local_44")) (; ";")) (expression_statement "piVar14 = &iStack_d0;" (assignment_expression "piVar14 = &iStack_d0" (identifier "piVar14") (= "=") (pointer_expression "&iStack_d0" (& "&") (identifier "iStack_d0"))) (; ";")) (expression_statement "iVar16 = extraout_ECX;" (assignment_expression "iVar16 = extraout_ECX" (identifier "iVar16") (= "=") (identifier "extraout_ECX")) (; ";")) (} "}")))) (expression_statement "puVar15 = local_4c[0];" (assignment_expression "puVar15 = local_4c[0]" (identifier "puVar15") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "iVar4 = *local_b0;" (assignment_expression "iVar4 = *local_b0" (identifier "iVar4") (= "=") (pointer_expression "*local_b0" (* "*") (identifier "local_b0"))) (; ";")) (if_statement "if (*(int *)(iVar4 + 8) == 0) {\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 8) == 0" (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;\n    FUN_002446e0();\n  }" ({ "{") (expression_statement "*(undefined4 *)((int)piVar14 + -4) = unaff_EDI;" (assignment_expression "*(undefined4 *)((int)piVar14 + -4) = unaff_EDI" (pointer_expression "*(undefined4 *)((int)piVar14 + -4)" (* "*") (cast_expression "(undefined4 *)((int)piVar14 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -4)" (( "(") (binary_expression "(int)piVar14 + -4" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "unaff_EDI")) (; ";")) (expression_statement "*(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;" (assignment_expression "*(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf" (pointer_expression "*(undefined ***)((int)piVar14 + -8)" (* "*") (cast_expression "(undefined ***)((int)piVar14 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar14 + -8)" (( "(") (binary_expression "(int)piVar14 + -8" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_8c + -0x64ebf" (identifier "local_8c") (+ "+") (number_literal "-0x64ebf"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar14 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar14 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar14 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -0xc)" (( "(") (binary_expression "(int)piVar14 + -0xc" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)((int)piVar14 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar14 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -0x10)" (( "(") (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2989" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -0x14)" (( "(") (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa2989")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0) {\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }\n  else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(iVar4 + 8) + 0x5934)" (* "*") (cast_expression "(int *)(*(int *)(iVar4 + 8) + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x5934)" (( "(") (binary_expression "*(int *)(iVar4 + 8) + 0x5934" (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000a1f35:\n    local_a5 = '\0';\n    local_bc = 0;\n    local_a4 = 0;\n    local_b8 = 0;\n    local_a0 = 0;\n    local_9c = 0;\n  }" ({ "{") (labeled_statement "LAB_000a1f35:\n    local_a5 = '\0';" (statement_identifier "LAB_000a1f35") (: ":") (expression_statement "local_a5 = '\0';" (assignment_expression "local_a5 = '\0'" (identifier "local_a5") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" (identifier "local_bc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" (identifier "local_a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" (identifier "local_a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" (identifier "local_9c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }" (else "else") (compound_statement "{\n    local_88 = &local_2c;\n    puVar7 = (undefined1 *)0xffffffff;\n    local_34 = local_88;\n    if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }\n    *(undefined4 *)((int)piVar14 + -4) = 0;\n    *(undefined1 **)((int)piVar14 + -8) = puVar7;\n    local_84 = &local_34;\n    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;\n    *(uint ***)((int)piVar14 + -0x10) = local_84;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;\n    FUN_00072b90();\n    iVar16 = 5;\n    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);\n    bVar21 = piVar14 == (int *)0x0;\n    ppuVar18 = local_8c + -0x67293;\n    puVar13 = local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);\n    bVar22 = false;\n    bVar23 = (!bVar23 && !bVar21) == bVar23;\n    if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }\n    if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }\n    *(uint ***)((int)piVar14 + -0xc) = local_84;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_84 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;\n    local_9c = FUN_00074520();\n    local_a0 = local_9c + 0xc;\n    local_b8 = local_9c + 0x18;\n    local_a4 = local_9c + 0x24;\n    local_bc = local_9c + 0x30;\n    iVar4 = *local_b0;\n    local_a5 = '\x01';\n    iVar16 = extraout_ECX_01;\n  }" ({ "{") (expression_statement "local_88 = &local_2c;" (assignment_expression "local_88 = &local_2c" (identifier "local_88") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";")) (expression_statement "puVar7 = (undefined1 *)0xffffffff;" (assignment_expression "puVar7 = (undefined1 *)0xffffffff" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)0xffffffff" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "local_34 = local_88;" (assignment_expression "local_34 = local_88" (identifier "local_34") (= "=") (identifier "local_88")) (; ";")) (if_statement "if (local_4c[0] != (undefined1 *)0x0) {\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }" (if "if") (parenthesized_expression "(local_4c[0] != (undefined1 *)0x0)" (( "(") (binary_expression "local_4c[0] != (undefined1 *)0x0" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;\n      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));\n      puVar7 = puVar15 + sVar5;\n    }" ({ "{") (expression_statement "*(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];" (assignment_expression "*(undefined1 **)((int)piVar14 + -0x10) = local_4c[0]" (pointer_expression "*(undefined1 **)((int)piVar14 + -0x10)" (* "*") (cast_expression "(undefined1 **)((int)piVar14 + -0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar14 + -0x10)" (( "(") (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -0x14)" (( "(") (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa27ef")) (; ";")) (expression_statement "sVar5 = strlen(*(char **)((int)piVar14 + -0x10));" (assignment_expression "sVar5 = strlen(*(char **)((int)piVar14 + -0x10))" (identifier "sVar5") (= "=") (call_expression "strlen(*(char **)((int)piVar14 + -0x10))" (identifier "strlen") (argument_list "(*(char **)((int)piVar14 + -0x10))" (( "(") (pointer_expression "*(char **)((int)piVar14 + -0x10)" (* "*") (cast_expression "(char **)((int)piVar14 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar14 + -0x10)" (( "(") (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar7 = puVar15 + sVar5;" (assignment_expression "puVar7 = puVar15 + sVar5" (identifier "puVar7") (= "=") (binary_expression "puVar15 + sVar5" (identifier "puVar15") (+ "+") (identifier "sVar5"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)((int)piVar14 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)piVar14 + -4) = 0" (pointer_expression "*(undefined4 *)((int)piVar14 + -4)" (* "*") (cast_expression "(undefined4 *)((int)piVar14 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -4)" (( "(") (binary_expression "(int)piVar14 + -4" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 **)((int)piVar14 + -8) = puVar7;" (assignment_expression "*(undefined1 **)((int)piVar14 + -8) = puVar7" (pointer_expression "*(undefined1 **)((int)piVar14 + -8)" (* "*") (cast_expression "(undefined1 **)((int)piVar14 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar14 + -8)" (( "(") (binary_expression "(int)piVar14 + -8" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" (identifier "local_84") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "*(undefined1 **)((int)piVar14 + -0xc) = puVar15;" (assignment_expression "*(undefined1 **)((int)piVar14 + -0xc) = puVar15" (pointer_expression "*(undefined1 **)((int)piVar14 + -0xc)" (* "*") (cast_expression "(undefined1 **)((int)piVar14 + -0xc)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar14 + -0xc)" (( "(") (binary_expression "(int)piVar14 + -0xc" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar15")) (; ";")) (expression_statement "*(uint ***)((int)piVar14 + -0x10) = local_84;" (assignment_expression "*(uint ***)((int)piVar14 + -0x10) = local_84" (pointer_expression "*(uint ***)((int)piVar14 + -0x10)" (* "*") (cast_expression "(uint ***)((int)piVar14 + -0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar14 + -0x10)" (( "(") (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2804" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -0x14)" (( "(") (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa2804")) (; ";")) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" (identifier "FUN_00072b90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar16 = 5;" (assignment_expression "iVar16 = 5" (identifier "iVar16") (= "=") (number_literal "5")) (; ";")) (expression_statement "bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);" (assignment_expression "bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10)" (identifier "bVar23") (= "=") (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (cast_expression "(undefined1 *)((int)piVar14 + -0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -0x10)" (( "(") (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x10")) () ")"))))) (; ";")) (expression_statement "bVar21 = piVar14 == (int *)0x0;" (assignment_expression "bVar21 = piVar14 == (int *)0x0" (identifier "bVar21") (= "=") (binary_expression "piVar14 == (int *)0x0" (identifier "piVar14") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "ppuVar18 = local_8c + -0x67293;" (assignment_expression "ppuVar18 = local_8c + -0x67293" (identifier "ppuVar18") (= "=") (binary_expression "local_8c + -0x67293" (identifier "local_8c") (+ "+") (number_literal "-0x67293"))) (; ";")) (expression_statement "puVar13 = local_34;" (assignment_expression "puVar13 = local_34" (identifier "puVar13") (= "=") (identifier "local_34")) (; ";")) (do_statement "do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    } while (bVar21);" (do "do") (compound_statement "{\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;\n      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;\n      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);\n      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n    }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;" (assignment_expression "bVar23 = *(byte *)ppuVar18 < (byte)*puVar13" (identifier "bVar23") (= "=") (binary_expression "*(byte *)ppuVar18 < (byte)*puVar13" (pointer_expression "*(byte *)ppuVar18" (* "*") (cast_expression "(byte *)ppuVar18" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar18"))) (< "<") (binary_expression "(byte)*puVar13" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar13")))) (; ";")) (expression_statement "bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;" (assignment_expression "bVar21 = *(byte *)ppuVar18 == (byte)*puVar13" (identifier "bVar21") (= "=") (binary_expression "*(byte *)ppuVar18 == (byte)*puVar13" (pointer_expression "*(byte *)ppuVar18" (* "*") (cast_expression "(byte *)ppuVar18" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar18"))) (== "==") (binary_expression "(byte)*puVar13" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar13")))) (; ";")) (expression_statement "ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);" (assignment_expression "ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1)" (identifier "ppuVar18") (= "=") (cast_expression "(undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar18 + (uint)bVar24 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar18 + (uint)bVar24 * -2 + 1" (binary_expression "(int)ppuVar18 + (uint)bVar24 * -2" (cast_expression "(int)ppuVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar18")) (+ "+") (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);" (assignment_expression "puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1)" (identifier "puVar13") (= "=") (cast_expression "(uint *)((int)puVar13 + (uint)bVar24 * -2 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar13 + (uint)bVar24 * -2 + 1)" (( "(") (binary_expression "(int)puVar13 + (uint)bVar24 * -2 + 1" (binary_expression "(int)puVar13 + (uint)bVar24 * -2" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar21)" (( "(") (identifier "bVar21") () ")")) (; ";")) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar23 && !bVar21) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar21) == bVar23" (identifier "bVar23") (= "=") (binary_expression "(!bVar23 && !bVar21) == bVar23" (parenthesized_expression "(!bVar23 && !bVar21)" (( "(") (binary_expression "!bVar23 && !bVar21" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar21" (! "!") (identifier "bVar21"))) () ")")) (== "==") (identifier "bVar23"))) (; ";")) (if_statement "if (!bVar23) {\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n      iVar16 = 0xf;\n      pbVar19 = (byte *)((int)local_8c + -0x19ca46);\n      puVar13 = local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }\n    }" ({ "{") (expression_statement "iVar16 = 0xf;" (assignment_expression "iVar16 = 0xf" (identifier "iVar16") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "pbVar19 = (byte *)((int)local_8c + -0x19ca46);" (assignment_expression "pbVar19 = (byte *)((int)local_8c + -0x19ca46)" (identifier "pbVar19") (= "=") (cast_expression "(byte *)((int)local_8c + -0x19ca46)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_8c + -0x19ca46)" (( "(") (binary_expression "(int)local_8c + -0x19ca46" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "-0x19ca46")) () ")")))) (; ";")) (expression_statement "puVar13 = local_34;" (assignment_expression "puVar13 = local_34" (identifier "puVar13") (= "=") (identifier "local_34")) (; ";")) (do_statement "do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      } while (bVar23);" (do "do") (compound_statement "{\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar22 = *pbVar19 < (byte)*puVar13;\n        bVar23 = *pbVar19 == (byte)*puVar13;\n        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);\n      }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar19 < (byte)*puVar13;" (assignment_expression "bVar22 = *pbVar19 < (byte)*puVar13" (identifier "bVar22") (= "=") (binary_expression "*pbVar19 < (byte)*puVar13" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (< "<") (binary_expression "(byte)*puVar13" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar13")))) (; ";")) (expression_statement "bVar23 = *pbVar19 == (byte)*puVar13;" (assignment_expression "bVar23 = *pbVar19 == (byte)*puVar13" (identifier "bVar23") (= "=") (binary_expression "*pbVar19 == (byte)*puVar13" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (== "==") (binary_expression "(byte)*puVar13" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar13")))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar24 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);" (assignment_expression "puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1)" (identifier "puVar13") (= "=") (cast_expression "(uint *)((int)puVar13 + (uint)bVar24 * -2 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar13 + (uint)bVar24 * -2 + 1)" (( "(") (binary_expression "(int)puVar13 + (uint)bVar24 * -2 + 1" (binary_expression "(int)puVar13 + (uint)bVar24 * -2" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (if_statement "if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }" (if "if") (parenthesized_expression "((!bVar22 && !bVar23) != bVar22)" (( "(") (binary_expression "(!bVar22 && !bVar23) != bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" (( "(") (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (!= "!=") (identifier "bVar22")) () ")")) (compound_statement "{\n        if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }\n        goto LAB_000a1f35;\n      }" ({ "{") (if_statement "if (local_34 == local_88) {\n          iVar4 = *local_b0;\n        }\n        else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }" (if "if") (parenthesized_expression "(local_34 == local_88)" (( "(") (binary_expression "local_34 == local_88" (identifier "local_34") (== "==") (identifier "local_88")) () ")")) (compound_statement "{\n          iVar4 = *local_b0;\n        }" ({ "{") (expression_statement "iVar4 = *local_b0;" (assignment_expression "iVar4 = *local_b0" (identifier "iVar4") (= "=") (pointer_expression "*local_b0" (* "*") (identifier "local_b0"))) (; ";")) (} "}")) (else_clause "else {\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }" (else "else") (compound_statement "{\n          *(uint **)((int)piVar14 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;\n          FUN_003ae080();\n          iVar4 = *local_b0;\n          iVar16 = extraout_ECX_02;\n        }" ({ "{") (expression_statement "*(uint **)((int)piVar14 + -0x10) = local_34;" (assignment_expression "*(uint **)((int)piVar14 + -0x10) = local_34" (pointer_expression "*(uint **)((int)piVar14 + -0x10)" (* "*") (cast_expression "(uint **)((int)piVar14 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar14 + -0x10)" (( "(") (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -0x14)" (( "(") (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa28d3")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar4 = *local_b0;" (assignment_expression "iVar4 = *local_b0" (identifier "iVar4") (= "=") (pointer_expression "*local_b0" (* "*") (identifier "local_b0"))) (; ";")) (expression_statement "iVar16 = extraout_ECX_02;" (assignment_expression "iVar16 = extraout_ECX_02" (identifier "iVar16") (= "=") (identifier "extraout_ECX_02")) (; ";")) (} "}")))) (goto_statement "goto LAB_000a1f35;" (goto "goto") (statement_identifier "LAB_000a1f35") (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_34 != local_88) {\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }" (if "if") (parenthesized_expression "(local_34 != local_88)" (( "(") (binary_expression "local_34 != local_88" (identifier "local_34") (!= "!=") (identifier "local_88")) () ")")) (compound_statement "{\n      *(uint **)((int)piVar14 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;\n      FUN_003ae080();\n    }" ({ "{") (expression_statement "*(uint **)((int)piVar14 + -0x10) = local_34;" (assignment_expression "*(uint **)((int)piVar14 + -0x10) = local_34" (pointer_expression "*(uint **)((int)piVar14 + -0x10)" (* "*") (cast_expression "(uint **)((int)piVar14 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar14 + -0x10)" (( "(") (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -0x14)" (( "(") (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa29dd")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(uint ***)((int)piVar14 + -0xc) = local_84;" (assignment_expression "*(uint ***)((int)piVar14 + -0xc) = local_84" (pointer_expression "*(uint ***)((int)piVar14 + -0xc)" (* "*") (cast_expression "(uint ***)((int)piVar14 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar14 + -0xc)" (( "(") (binary_expression "(int)piVar14 + -0xc" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" (identifier "local_34") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_30 = param_5;" (assignment_expression "local_30 = param_5" (identifier "local_30") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_84 = *(uint ***)(param_2 + 0x15c);" (assignment_expression "local_84 = *(uint ***)(param_2 + 0x15c)" (identifier "local_84") (= "=") (pointer_expression "*(uint ***)(param_2 + 0x15c)" (* "*") (cast_expression "(uint ***)(param_2 + 0x15c)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(param_2 + 0x15c)" (( "(") (binary_expression "param_2 + 0x15c" (identifier "param_2") (+ "+") (number_literal "0x15c")) () ")"))))) (; ";")) (expression_statement "*(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;" (assignment_expression "*(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15" (pointer_expression "*(uint ***)((int)piVar14 + -0x10)" (* "*") (cast_expression "(uint ***)((int)piVar14 + -0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar14 + -0x10)" (( "(") (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_84 + 0x15" (identifier "local_84") (+ "+") (number_literal "0x15"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa2873" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -0x14)" (( "(") (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa2873")) (; ";")) (expression_statement "local_9c = FUN_00074520();" (assignment_expression "local_9c = FUN_00074520()" (identifier "local_9c") (= "=") (call_expression "FUN_00074520()" (identifier "FUN_00074520") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_a0 = local_9c + 0xc;" (assignment_expression "local_a0 = local_9c + 0xc" (identifier "local_a0") (= "=") (binary_expression "local_9c + 0xc" (identifier "local_9c") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "local_b8 = local_9c + 0x18;" (assignment_expression "local_b8 = local_9c + 0x18" (identifier "local_b8") (= "=") (binary_expression "local_9c + 0x18" (identifier "local_9c") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "local_a4 = local_9c + 0x24;" (assignment_expression "local_a4 = local_9c + 0x24" (identifier "local_a4") (= "=") (binary_expression "local_9c + 0x24" (identifier "local_9c") (+ "+") (number_literal "0x24"))) (; ";")) (expression_statement "local_bc = local_9c + 0x30;" (assignment_expression "local_bc = local_9c + 0x30" (identifier "local_bc") (= "=") (binary_expression "local_9c + 0x30" (identifier "local_9c") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "iVar4 = *local_b0;" (assignment_expression "iVar4 = *local_b0" (identifier "iVar4") (= "=") (pointer_expression "*local_b0" (* "*") (identifier "local_b0"))) (; ";")) (expression_statement "local_a5 = '\x01';" (assignment_expression "local_a5 = '\x01'" (identifier "local_a5") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "iVar16 = extraout_ECX_01;" (assignment_expression "iVar16 = extraout_ECX_01" (identifier "iVar16") (= "=") (identifier "extraout_ECX_01")) (; ";")) (} "}")))) (if_statement "if (*(int *)(iVar4 + 8) == 0) {\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 8) == 0" (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(int *)((int)piVar14 + -4) = iVar16;\n    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;\n    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;\n    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;\n    FUN_002446e0();\n  }" ({ "{") (expression_statement "*(int *)((int)piVar14 + -4) = iVar16;" (assignment_expression "*(int *)((int)piVar14 + -4) = iVar16" (pointer_expression "*(int *)((int)piVar14 + -4)" (* "*") (cast_expression "(int *)((int)piVar14 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -4)" (( "(") (binary_expression "(int)piVar14 + -4" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "iVar16")) (; ";")) (expression_statement "*(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;" (assignment_expression "*(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf" (pointer_expression "*(undefined ***)((int)piVar14 + -8)" (* "*") (cast_expression "(undefined ***)((int)piVar14 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar14 + -8)" (( "(") (binary_expression "(int)piVar14 + -8" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_8c + -0x64ebf" (identifier "local_8c") (+ "+") (number_literal "-0x64ebf"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar14 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar14 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar14 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -0xc)" (( "(") (binary_expression "(int)piVar14 + -0xc" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)((int)piVar14 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar14 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -0x10)" (( "(") (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -0x14)" (( "(") (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa29a5")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_8 != 0) {\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }" (if "if") (parenthesized_expression "(param_8 != 0)" (( "(") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_ac = (byte *)0x0;\n    local_c0 = local_7c;\n    local_c4 = &local_68;\n    local_b4 = 0;\n    puVar15 = (undefined1 *)piVar14;\n    do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);\n  }" ({ "{") (expression_statement "local_ac = (byte *)0x0;" (assignment_expression "local_ac = (byte *)0x0" (identifier "local_ac") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_c0 = local_7c;" (assignment_expression "local_c0 = local_7c" (identifier "local_c0") (= "=") (identifier "local_7c")) (; ";")) (expression_statement "local_c4 = &local_68;" (assignment_expression "local_c4 = &local_68" (identifier "local_c4") (= "=") (pointer_expression "&local_68" (& "&") (identifier "local_68"))) (; ";")) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15 = (undefined1 *)piVar14;" (assignment_expression "puVar15 = (undefined1 *)piVar14" (identifier "puVar15") (= "=") (cast_expression "(undefined1 *)piVar14" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar14"))) (; ";")) (do_statement "do {\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    } while (param_8 != local_b4);" (do "do") (compound_statement "{\n      uVar12 = param_7[1];\n      uVar6 = param_7[2];\n      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;\n      piVar14 = (int *)puVar15;\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }\nLAB_000a20dc:\n      local_b4 = local_b4 + 1;\n      param_7 = param_7 + 3;\n      puVar15 = (undefined1 *)piVar14;\n    }" ({ "{") (expression_statement "uVar12 = param_7[1];" (assignment_expression "uVar12 = param_7[1]" (identifier "uVar12") (= "=") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar6 = param_7[2];" (assignment_expression "uVar6 = param_7[2]" (identifier "uVar6") (= "=") (subscript_expression "param_7[2]" (identifier "param_7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (identifier "local_90") (= "=") (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | 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 "uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;" (assignment_expression "uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8" (identifier "uVar12") (= "=") (binary_expression "((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8" (parenthesized_expression "((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (( "(") (binary_expression "(uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "(uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8")) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")) (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "piVar14 = (int *)puVar15;" (assignment_expression "piVar14 = (int *)puVar15" (identifier "piVar14") (= "=") (cast_expression "(int *)puVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar15"))) (; ";")) (if_statement "if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }\n      else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(uVar12 < param_11)" (( "(") (binary_expression "uVar12 < param_11" (identifier "uVar12") (< "<") (identifier "param_11")) () ")")) (compound_statement "{\n        if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }\n        iVar16 = uVar12 * 0x10 + param_12;\n        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);\n        if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }\n      }" ({ "{") (if_statement "if (param_12 == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }" (if "if") (parenthesized_expression "(param_12 == 0)" (( "(") (binary_expression "param_12 == 0" (identifier "param_12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0xea;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;\n          FUN_002446e0();\n        }" ({ "{") (expression_statement "*(undefined ***)(puVar15 + -8) = local_8c + -0x65123;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_8c + -0x65123" (pointer_expression "*(undefined ***)(puVar15 + -8)" (* "*") (cast_expression "(undefined ***)(puVar15 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_8c + -0x65123" (identifier "local_8c") (+ "+") (number_literal "-0x65123"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xea")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_8c + -0x19ca36" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "-0x19ca36"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_000a2909;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_000a2909" (pointer_expression "*(undefined **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_000a2909" (& "&") (identifier "UNK_000a2909"))) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar16 = uVar12 * 0x10 + param_12;" (assignment_expression "iVar16 = uVar12 * 0x10 + param_12" (identifier "iVar16") (= "=") (binary_expression "uVar12 * 0x10 + param_12" (binary_expression "uVar12 * 0x10" (identifier "uVar12") (* "*") (number_literal "0x10")) (+ "+") (identifier "param_12"))) (; ";")) (expression_statement "local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8);" (assignment_expression "local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8)" (identifier "local_88") (= "=") (cast_expression "(uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(ushort)" (( "(") (identifier "ushort") () ")"))) (argument_list "(*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8)" (( "(") (binary_expression "*(ushort *)(iVar16 + 0xe) << 8 |\n                                         *(ushort *)(iVar16 + 0xe) >> 8" (binary_expression "*(ushort *)(iVar16 + 0xe) << 8" (pointer_expression "*(ushort *)(iVar16 + 0xe)" (* "*") (cast_expression "(ushort *)(iVar16 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xe)" (( "(") (binary_expression "iVar16 + 0xe" (identifier "iVar16") (+ "+") (number_literal "0xe")) () ")")))) (<< "<<") (number_literal "8")) (| "|") (binary_expression "*(ushort *)(iVar16 + 0xe) >> 8" (pointer_expression "*(ushort *)(iVar16 + 0xe)" (* "*") (cast_expression "(ushort *)(iVar16 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xe)" (( "(") (binary_expression "iVar16 + 0xe" (identifier "iVar16") (+ "+") (number_literal "0xe")) () ")")))) (>> ">>") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (local_88 < (uint *)0xff00) {\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }\n        else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }" (if "if") (parenthesized_expression "(local_88 < (uint *)0xff00)" (( "(") (binary_expression "local_88 < (uint *)0xff00" (identifier "local_88") (< "<") (cast_expression "(uint *)0xff00" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xff00"))) () ")")) (compound_statement "{\nLAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }\n          if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }\n        }" ({ "{") (labeled_statement "LAB_000a2144:\n          uVar12 = *(uint *)(iVar16 + 4);" (statement_identifier "LAB_000a2144") (: ":") (expression_statement "uVar12 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar12 = *(uint *)(iVar16 + 4)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(iVar16 + 4)" (* "*") (cast_expression "(uint *)(iVar16 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 4)" (( "(") (binary_expression "iVar16 + 4" (identifier "iVar16") (+ "+") (number_literal "4")) () ")"))))) (; ";"))) (expression_statement "puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);" (assignment_expression "puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" (identifier "puVar13") (= "=") (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "local_98 = (int)puVar13 + local_90;" (assignment_expression "local_98 = (int)puVar13 + local_90" (identifier "local_98") (= "=") (binary_expression "(int)puVar13 + local_90" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (identifier "local_90"))) (; ";")) (if_statement "if (local_a5 != '\0') {\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }" (if "if") (parenthesized_expression "(local_a5 != '\0')" (( "(") (binary_expression "local_a5 != '\0'" (identifier "local_a5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_34 = param_4;\n            local_30 = local_88;\n            local_84 = &local_34;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = true;\njoined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_b8;\n            local_2c = local_90;\n            local_28 = (int)local_90 >> 0x1f;\n            local_30 = (uint *)0x0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;\n            local_34 = puVar13;\n            FUN_00073e70();\n            local_30 = (uint *)0x0;\n            uVar12 = *param_7;\n            puVar1 = *(undefined4 **)(local_a4 + 4);\n            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }\n            local_54 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = &local_54;\n            *(int *)(puVar15 + -0x10) = local_bc;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;\n            FUN_00074020();\n            if (!bVar23) goto LAB_000a20dc;\n          }" ({ "{") (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" (identifier "local_34") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_30 = local_88;" (assignment_expression "local_30 = local_88" (identifier "local_30") (= "=") (identifier "local_88")) (; ";")) (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" (identifier "local_84") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar15 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = local_9c;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_9c" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_9c")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2188;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2188" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa2188")) (; ";")) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" (identifier "FUN_00073b00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar11 = *(byte *)(iVar16 + 0xc);" (assignment_expression "bVar11 = *(byte *)(iVar16 + 0xc)" (identifier "bVar11") (= "=") (pointer_expression "*(byte *)(iVar16 + 0xc)" (* "*") (cast_expression "(byte *)(iVar16 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xc)" (( "(") (binary_expression "iVar16 + 0xc" (identifier "iVar16") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" (identifier "bVar23") (= "=") (true "true")) (; ";")) (labeled_statement "joined_r0x000a200c:\n            if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }" (statement_identifier "joined_r0x000a200c") (: ":") (if_statement "if ((bVar11 & 0xf) == 3) {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }\n            else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }" (if "if") (parenthesized_expression "((bVar11 & 0xf) == 3)" (( "(") (binary_expression "(bVar11 & 0xf) == 3" (parenthesized_expression "(bVar11 & 0xf)" (( "(") (binary_expression "bVar11 & 0xf" (identifier "bVar11") (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "3")) () ")")) (compound_statement "{\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0xffffffff;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;\n              FUN_00073ca0();\n            }" ({ "{") (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar15 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = local_a0;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a0" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "local_34 = (uint *)0xffffffff;" (assignment_expression "local_34 = (uint *)0xffffffff" (identifier "local_34") (= "=") (cast_expression "(uint *)0xffffffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa21b7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa21b7" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa21b7")) (; ";")) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" (identifier "FUN_00073ca0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }" (else "else") (compound_statement "{\n              *(uint ***)(puVar15 + -0xc) = local_84;\n              *(int *)(puVar15 + -0x10) = local_a0;\n              local_34 = (uint *)0x0;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;\n              FUN_00073ca0();\n            }" ({ "{") (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar15 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = local_a0;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a0" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" (identifier "local_34") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa202a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa202a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa202a")) (; ";")) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" (identifier "FUN_00073ca0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))))) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar15 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = local_b8;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_b8" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "local_2c = local_90;" (assignment_expression "local_2c = local_90" (identifier "local_2c") (= "=") (identifier "local_90")) (; ";")) (expression_statement "local_28 = (int)local_90 >> 0x1f;" (assignment_expression "local_28 = (int)local_90 >> 0x1f" (identifier "local_28") (= "=") (binary_expression "(int)local_90 >> 0x1f" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2057;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2057" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa2057")) (; ";")) (expression_statement "local_34 = puVar13;" (assignment_expression "local_34 = puVar13" (identifier "local_34") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" (identifier "FUN_00073e70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar12 = *param_7;" (assignment_expression "uVar12 = *param_7" (identifier "uVar12") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (expression_statement "puVar1 = *(undefined4 **)(local_a4 + 4);" (assignment_expression "puVar1 = *(undefined4 **)(local_a4 + 4)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined4 **)(local_a4 + 4)" (* "*") (cast_expression "(undefined4 **)(local_a4 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_a4 + 4)" (( "(") (binary_expression "local_a4 + 4" (identifier "local_a4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);" (assignment_expression "local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" (identifier "local_34") (= "=") (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (if_statement "if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }\n            else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }" (if "if") (parenthesized_expression "(puVar1 == *(undefined4 **)(local_a4 + 8))" (( "(") (binary_expression "puVar1 == *(undefined4 **)(local_a4 + 8)" (identifier "puVar1") (== "==") (pointer_expression "*(undefined4 **)(local_a4 + 8)" (* "*") (cast_expression "(undefined4 **)(local_a4 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_a4 + 8)" (( "(") (binary_expression "local_a4 + 8" (identifier "local_a4") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n              *(uint ***)(puVar15 + -8) = local_84;\n              *(undefined4 **)(puVar15 + -0xc) = puVar1;\n              *(int *)(puVar15 + -0x10) = local_a4;\n              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;\n              FUN_00072a40();\n            }" ({ "{") (expression_statement "*(uint ***)(puVar15 + -8) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -8) = local_84" (pointer_expression "*(uint ***)(puVar15 + -8)" (* "*") (cast_expression "(uint ***)(puVar15 + -8)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(undefined4 **)(puVar15 + -0xc) = puVar1;" (assignment_expression "*(undefined4 **)(puVar15 + -0xc) = puVar1" (pointer_expression "*(undefined4 **)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = local_a4;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a4" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a4")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2722;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2722" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa2722")) (; ";")) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" (identifier "FUN_00072a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }" (else "else") (compound_statement "{\n              *puVar1 = local_34;\n              puVar1[1] = 0;\n              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n            }" ({ "{") (expression_statement "*puVar1 = local_34;" (assignment_expression "*puVar1 = local_34" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(local_a4 + 4) = puVar1 + 2;" (assignment_expression "*(undefined4 **)(local_a4 + 4) = puVar1 + 2" (pointer_expression "*(undefined4 **)(local_a4 + 4)" (* "*") (cast_expression "(undefined4 **)(local_a4 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_a4 + 4)" (( "(") (binary_expression "local_a4 + 4" (identifier "local_a4") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar1 + 2" (identifier "puVar1") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "local_54 = (uint *)0x0;" (assignment_expression "local_54 = (uint *)0x0" (identifier "local_54") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(uint ***)(puVar15 + -0xc) = &local_54;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = &local_54" (pointer_expression "*(uint ***)(puVar15 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar15 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = local_bc;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_bc" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa209f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa209f" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa209f")) (; ";")) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" (identifier "FUN_00074020") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (!bVar23) goto LAB_000a20dc;" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (goto_statement "goto LAB_000a20dc;" (goto "goto") (statement_identifier "LAB_000a20dc") (; ";"))) (} "}"))) (if_statement "if (param_5 != local_88) {\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }" (if "if") (parenthesized_expression "(param_5 != local_88)" (( "(") (binary_expression "param_5 != local_88" (identifier "param_5") (!= "!=") (identifier "local_88")) () ")")) (compound_statement "{\n            local_94 = param_4;\n            goto LAB_000a20bc;\n          }" ({ "{") (expression_statement "local_94 = param_4;" (assignment_expression "local_94 = param_4" (identifier "local_94") (= "=") (identifier "param_4")) (; ";")) (goto_statement "goto LAB_000a20bc;" (goto "goto") (statement_identifier "LAB_000a20bc") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }" (else "else") (compound_statement "{\n          if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }\n          uVar12 = *(uint *)(iVar16 + 4);\n          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);\n          local_98 = (int)puVar13 + local_90;\n          if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }\n        }" ({ "{") (if_statement "if (local_88 == (uint *)0xffff) {\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }" (if "if") (parenthesized_expression "(local_88 == (uint *)0xffff)" (( "(") (binary_expression "local_88 == (uint *)0xffff" (identifier "local_88") (== "==") (cast_expression "(uint *)0xffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffff"))) () ")")) (compound_statement "{\n            uVar6 = param_4[0xc];\n            if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(uint **)(puVar15 + -0xc) = param_4;\n            *(uint *)(puVar15 + -0x10) = uVar6;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;\n            local_88 = (uint *)FUN_0028b7d0();\n            goto LAB_000a2144;\n          }" ({ "{") (expression_statement "uVar6 = param_4[0xc];" (assignment_expression "uVar6 = param_4[0xc]" (identifier "uVar6") (= "=") (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (if_statement "if (uVar6 == 0) {\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar6 = *param_4;\n              *(uint **)(puVar15 + -0x10) = param_4;\n              pcVar2 = *(code **)(uVar6 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;\n              uVar6 = (*pcVar2)();\n              param_4[0xc] = uVar6;\n            }" ({ "{") (expression_statement "uVar6 = *param_4;" (assignment_expression "uVar6 = *param_4" (identifier "uVar6") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "*(uint **)(puVar15 + -0x10) = param_4;" (assignment_expression "*(uint **)(puVar15 + -0x10) = param_4" (pointer_expression "*(uint **)(puVar15 + -0x10)" (* "*") (cast_expression "(uint **)(puVar15 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "pcVar2 = *(code **)(uVar6 + 0x6c);" (assignment_expression "pcVar2 = *(code **)(uVar6 + 0x6c)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(uVar6 + 0x6c)" (* "*") (cast_expression "(code **)(uVar6 + 0x6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar6 + 0x6c)" (( "(") (binary_expression "uVar6 + 0x6c" (identifier "uVar6") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa26de;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa26de" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa26de")) (; ";")) (expression_statement "uVar6 = (*pcVar2)();" (assignment_expression "uVar6 = (*pcVar2)()" (identifier "uVar6") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "param_4[0xc] = uVar6;" (assignment_expression "param_4[0xc] = uVar6" (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar15 + -8) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -8) = uVar12" (pointer_expression "*(uint *)(puVar15 + -8)" (* "*") (cast_expression "(uint *)(puVar15 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(uint **)(puVar15 + -0xc) = param_4;" (assignment_expression "*(uint **)(puVar15 + -0xc) = param_4" (pointer_expression "*(uint **)(puVar15 + -0xc)" (* "*") (cast_expression "(uint **)(puVar15 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(uint *)(puVar15 + -0x10) = uVar6;" (assignment_expression "*(uint *)(puVar15 + -0x10) = uVar6" (pointer_expression "*(uint *)(puVar15 + -0x10)" (* "*") (cast_expression "(uint *)(puVar15 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa21e1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa21e1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa21e1")) (; ";")) (expression_statement "local_88 = (uint *)FUN_0028b7d0();" (assignment_expression "local_88 = (uint *)FUN_0028b7d0()" (identifier "local_88") (= "=") (cast_expression "(uint *)FUN_0028b7d0()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0028b7d0()" (identifier "FUN_0028b7d0") (argument_list "()" (( "(") () ")"))))) (; ";")) (goto_statement "goto LAB_000a2144;" (goto "goto") (statement_identifier "LAB_000a2144") (; ";")) (} "}"))) (expression_statement "uVar12 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar12 = *(uint *)(iVar16 + 4)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(iVar16 + 4)" (* "*") (cast_expression "(uint *)(iVar16 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 4)" (( "(") (binary_expression "iVar16 + 4" (identifier "iVar16") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18);" (assignment_expression "puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" (identifier "puVar13") (= "=") (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                            uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "local_98 = (int)puVar13 + local_90;" (assignment_expression "local_98 = (int)puVar13 + local_90" (identifier "local_98") (= "=") (binary_expression "(int)puVar13 + local_90" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (identifier "local_90"))) (; ";")) (if_statement "if (local_a5 != '\0') {\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }" (if "if") (parenthesized_expression "(local_a5 != '\0')" (( "(") (binary_expression "local_a5 != '\0'" (identifier "local_a5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_84 = &local_34;\n            local_34 = (uint *)0x0;\n            *(uint ***)(puVar15 + -0xc) = local_84;\n            *(int *)(puVar15 + -0x10) = local_9c;\n            local_30 = (uint *)0x0;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;\n            FUN_00073b00();\n            bVar11 = *(byte *)(iVar16 + 0xc);\n            bVar23 = false;\n            goto joined_r0x000a200c;\n          }" ({ "{") (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" (identifier "local_84") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" (identifier "local_34") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar15 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = local_9c;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_9c" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_9c")) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa1ffe" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa1ffe")) (; ";")) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" (identifier "FUN_00073b00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar11 = *(byte *)(iVar16 + 0xc);" (assignment_expression "bVar11 = *(byte *)(iVar16 + 0xc)" (identifier "bVar11") (= "=") (pointer_expression "*(byte *)(iVar16 + 0xc)" (* "*") (cast_expression "(byte *)(iVar16 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xc)" (( "(") (binary_expression "iVar16 + 0xc" (identifier "iVar16") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (goto_statement "goto joined_r0x000a200c;" (goto "goto") (statement_identifier "joined_r0x000a200c") (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }" (else "else") (compound_statement "{\n        if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_84 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_000a244f;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;\n        if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }\n        local_98 = (int)puVar13 + local_90;\n        bVar21 = false;\n        pbVar19 = (byte *)*local_5c;\n        iVar16 = 8;\n        pbVar17 = (byte *)((int)local_8c + -0x19ca26);\n        pbVar20 = pbVar19;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar22 = false;\n        bVar23 = (!bVar21 && !bVar23) == bVar21;\n        if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }\n        local_ac = pbVar19;\n        if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }\n        if (local_a6 == 0) goto LAB_000a20dc;\nLAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }\n        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (uVar12 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }" (if "if") (parenthesized_expression "(uVar12 < param_4[0x2c])" (( "(") (binary_expression "uVar12 < param_4[0x2c]" (identifier "uVar12") (< "<") (subscript_expression "param_4[0x2c]" (identifier "param_4") ([ "[") (number_literal "0x2c") (] "]"))) () ")")) (compound_statement "{\n          local_5c = (uint *)0x0;\nLAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;\n          *(undefined4 *)(puVar15 + -0xc) = 0x11c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;\n          FUN_002446e0();\n        }" ({ "{") (expression_statement "local_5c = (uint *)0x0;" (assignment_expression "local_5c = (uint *)0x0" (identifier "local_5c") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_000a244f:\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;" (statement_identifier "LAB_000a244f") (: ":") (expression_statement "*(undefined ***)(puVar15 + -8) = local_8c + -0x65123;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_8c + -0x65123" (pointer_expression "*(undefined ***)(puVar15 + -8)" (* "*") (cast_expression "(undefined ***)(puVar15 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_8c + -0x65123" (identifier "local_8c") (+ "+") (number_literal "-0x65123"))) (; ";"))) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x11c")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_8c + -0x19ca36" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "-0x19ca36"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2470;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2470" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa2470")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar12 = uVar12 - param_4[0x2c];" (assignment_expression "uVar12 = uVar12 - param_4[0x2c]" (identifier "uVar12") (= "=") (binary_expression "uVar12 - param_4[0x2c]" (identifier "uVar12") (- "-") (subscript_expression "param_4[0x2c]" (identifier "param_4") ([ "[") (number_literal "0x2c") (] "]")))) (; ";")) (expression_statement "local_84 = (uint **)param_4[0x30];" (assignment_expression "local_84 = (uint **)param_4[0x30]" (identifier "local_84") (= "=") (cast_expression "(uint **)param_4[0x30]" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_4[0x30]" (identifier "param_4") ([ "[") (number_literal "0x30") (] "]")))) (; ";")) (if_statement "if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }" (if "if") (parenthesized_expression "((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12)" (( "(") (binary_expression "(uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12" (call_expression "(uint)((int)((int)local_84 - param_4[0x2f]) >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)((int)local_84 - param_4[0x2f]) >> 2)" (( "(") (binary_expression "(int)((int)local_84 - param_4[0x2f]) >> 2" (cast_expression "(int)((int)local_84 - param_4[0x2f])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)local_84 - param_4[0x2f])" (( "(") (binary_expression "(int)local_84 - param_4[0x2f]" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (- "-") (subscript_expression "param_4[0x2f]" (identifier "param_4") ([ "[") (number_literal "0x2f") (] "]"))) () ")"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar12")) () ")")) (compound_statement "{\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;\n          FUN_002446e0();\n        }" ({ "{") (expression_statement "*(undefined ***)(puVar15 + -8) = local_8c + -0x65096;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_8c + -0x65096" (pointer_expression "*(undefined ***)(puVar15 + -8)" (* "*") (cast_expression "(undefined ***)(puVar15 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_8c + -0x65096" (identifier "local_8c") (+ "+") (number_literal "-0x65096"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x8ad")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_8c + -0x19cc7b" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "-0x19cc7b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa294f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa294f" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa294f")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);" (assignment_expression "local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4)" (identifier "local_5c") (= "=") (pointer_expression "*(uint **)(param_4[0x2f] + uVar12 * 4)" (* "*") (cast_expression "(uint **)(param_4[0x2f] + uVar12 * 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4[0x2f] + uVar12 * 4)" (( "(") (binary_expression "param_4[0x2f] + uVar12 * 4" (subscript_expression "param_4[0x2f]" (identifier "param_4") ([ "[") (number_literal "0x2f") (] "]")) (+ "+") (binary_expression "uVar12 * 4" (identifier "uVar12") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (local_5c == (uint *)0x0) goto LAB_000a244f;" (if "if") (parenthesized_expression "(local_5c == (uint *)0x0)" (( "(") (binary_expression "local_5c == (uint *)0x0" (identifier "local_5c") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000a244f;" (goto "goto") (statement_identifier "LAB_000a244f") (; ";"))) (if_statement "if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }" (if "if") (parenthesized_expression "((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)((int)local_5c + 0x2a) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x2a) & 0x10)" (( "(") (binary_expression "*(byte *)((int)local_5c + 0x2a) & 0x10" (pointer_expression "*(byte *)((int)local_5c + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_5c + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_5c + 0x2a)" (( "(") (binary_expression "(int)local_5c + 0x2a" (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(uint **)(puVar15 + -0xc) = local_5c;\n          *(int *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;\n          local_5c = (uint *)FUN_0034cd90();\n        }" ({ "{") (expression_statement "*(uint **)(puVar15 + -0xc) = local_5c;" (assignment_expression "*(uint **)(puVar15 + -0xc) = local_5c" (pointer_expression "*(uint **)(puVar15 + -0xc)" (* "*") (cast_expression "(uint **)(puVar15 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = param_2;" (assignment_expression "*(int *)(puVar15 + -0x10) = param_2" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa243a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa243a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa243a")) (; ";")) (expression_statement "local_5c = (uint *)FUN_0034cd90();" (assignment_expression "local_5c = (uint *)FUN_0034cd90()" (identifier "local_5c") (= "=") (cast_expression "(uint *)FUN_0034cd90()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0034cd90()" (identifier "FUN_0034cd90") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (expression_statement "bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;" (assignment_expression "bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0" (identifier "bVar23") (= "=") (binary_expression "(*(byte *)((int)local_5c + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)local_5c + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_5c + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_5c + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_5c + 0x2a)" (( "(") (binary_expression "(int)local_5c + 0x2a" (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar23) {\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }\n        else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }" (if "if") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (compound_statement "{\n          local_94 = (uint *)local_5c[2];\n          bVar23 = (local_94[0xb] & 1) == 0;\n          if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }\n          puVar13 = (uint *)local_5c[0xc];\n        }" ({ "{") (expression_statement "local_94 = (uint *)local_5c[2];" (assignment_expression "local_94 = (uint *)local_5c[2]" (identifier "local_94") (= "=") (cast_expression "(uint *)local_5c[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_5c[2]" (identifier "local_5c") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "bVar23 = (local_94[0xb] & 1) == 0;" (assignment_expression "bVar23 = (local_94[0xb] & 1) == 0" (identifier "bVar23") (= "=") (binary_expression "(local_94[0xb] & 1) == 0" (parenthesized_expression "(local_94[0xb] & 1)" (( "(") (binary_expression "local_94[0xb] & 1" (subscript_expression "local_94[0xb]" (identifier "local_94") ([ "[") (number_literal "0xb") (] "]")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar23) {\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }\n          else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }" (if "if") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (compound_statement "{\n            local_88 = (uint *)local_5c[3];\n            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;\n            local_a6 = bVar11 & 1;\n            bVar23 = (bVar11 & 1) == 0;\n          }" ({ "{") (expression_statement "local_88 = (uint *)local_5c[3];" (assignment_expression "local_88 = (uint *)local_5c[3]" (identifier "local_88") (= "=") (cast_expression "(uint *)local_5c[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_5c[3]" (identifier "local_5c") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;" (assignment_expression "bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5" (identifier "bVar11") (= "=") (binary_expression "*(byte *)((int)local_5c + 0x2b) >> 5" (pointer_expression "*(byte *)((int)local_5c + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_5c + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_5c + 0x2b)" (( "(") (binary_expression "(int)local_5c + 0x2b" (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c")) (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "local_a6 = bVar11 & 1;" (assignment_expression "local_a6 = bVar11 & 1" (identifier "local_a6") (= "=") (binary_expression "bVar11 & 1" (identifier "bVar11") (& "&") (number_literal "1"))) (; ";")) (expression_statement "bVar23 = (bVar11 & 1) == 0;" (assignment_expression "bVar23 = (bVar11 & 1) == 0" (identifier "bVar23") (= "=") (binary_expression "(bVar11 & 1) == 0" (parenthesized_expression "(bVar11 & 1)" (( "(") (binary_expression "bVar11 & 1" (identifier "bVar11") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0"))) (; ";")) (} "}")) (else_clause "else {\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }" (else "else") (compound_statement "{\n            local_a6 = 0;\n            local_88 = (uint *)0x0;\n            local_94 = (uint *)0x0;\n          }" ({ "{") (expression_statement "local_a6 = 0;" (assignment_expression "local_a6 = 0" (identifier "local_a6") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_88 = (uint *)0x0;" (assignment_expression "local_88 = (uint *)0x0" (identifier "local_88") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_94 = (uint *)0x0;" (assignment_expression "local_94 = (uint *)0x0" (identifier "local_94") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (expression_statement "puVar13 = (uint *)local_5c[0xc];" (assignment_expression "puVar13 = (uint *)local_5c[0xc]" (identifier "puVar13") (= "=") (cast_expression "(uint *)local_5c[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_5c[0xc]" (identifier "local_5c") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }" (else "else") (compound_statement "{\n          puVar13 = (uint *)local_5c[0xc];\n          local_a6 = 0;\n          local_88 = (uint *)0x0;\n          local_94 = (uint *)0x0;\n        }" ({ "{") (expression_statement "puVar13 = (uint *)local_5c[0xc];" (assignment_expression "puVar13 = (uint *)local_5c[0xc]" (identifier "puVar13") (= "=") (cast_expression "(uint *)local_5c[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_5c[0xc]" (identifier "local_5c") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "local_a6 = 0;" (assignment_expression "local_a6 = 0" (identifier "local_a6") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_88 = (uint *)0x0;" (assignment_expression "local_88 = (uint *)0x0" (identifier "local_88") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_94 = (uint *)0x0;" (assignment_expression "local_94 = (uint *)0x0" (identifier "local_94") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (expression_statement "local_98 = (int)puVar13 + local_90;" (assignment_expression "local_98 = (int)puVar13 + local_90" (identifier "local_98") (= "=") (binary_expression "(int)puVar13 + local_90" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (identifier "local_90"))) (; ";")) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" (identifier "bVar21") (= "=") (false "false")) (; ";")) (expression_statement "pbVar19 = (byte *)*local_5c;" (assignment_expression "pbVar19 = (byte *)*local_5c" (identifier "pbVar19") (= "=") (cast_expression "(byte *)*local_5c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_5c" (* "*") (identifier "local_5c")))) (; ";")) (expression_statement "iVar16 = 8;" (assignment_expression "iVar16 = 8" (identifier "iVar16") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar17 = (byte *)((int)local_8c + -0x19ca26);" (assignment_expression "pbVar17 = (byte *)((int)local_8c + -0x19ca26)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)((int)local_8c + -0x19ca26)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_8c + -0x19ca26)" (( "(") (binary_expression "(int)local_8c + -0x19ca26" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "-0x19ca26")) () ")")))) (; ";")) (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" (identifier "pbVar20") (= "=") (identifier "pbVar19")) (; ";")) (do_statement "do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        } while (bVar23);" (do "do") (compound_statement "{\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar21 = *pbVar17 < *pbVar20;\n          bVar23 = *pbVar17 == *pbVar20;\n          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar21 = *pbVar17 < *pbVar20;" (assignment_expression "bVar21 = *pbVar17 < *pbVar20" (identifier "bVar21") (= "=") (binary_expression "*pbVar17 < *pbVar20" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *pbVar20;" (assignment_expression "bVar23 = *pbVar17 == *pbVar20" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *pbVar20" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar24 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar21 && !bVar23) == bVar21;" (assignment_expression "bVar23 = (!bVar21 && !bVar23) == bVar21" (identifier "bVar23") (= "=") (binary_expression "(!bVar21 && !bVar23) == bVar21" (parenthesized_expression "(!bVar21 && !bVar23)" (( "(") (binary_expression "!bVar21 && !bVar23" (unary_expression "!bVar21" (! "!") (identifier "bVar21")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar21"))) (; ";")) (if_statement "if (bVar23) {\n          pbVar19 = pbVar19 + 8;\n        }\n        else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }" (if "if") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (compound_statement "{\n          pbVar19 = pbVar19 + 8;\n        }" ({ "{") (expression_statement "pbVar19 = pbVar19 + 8;" (assignment_expression "pbVar19 = pbVar19 + 8" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 8" (identifier "pbVar19") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }" (else "else") (compound_statement "{\n          iVar16 = 7;\n          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);\n          pbVar20 = pbVar19;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);\n          pbVar19 = pbVar19 + 7;\n          if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }\n        }" ({ "{") (expression_statement "iVar16 = 7;" (assignment_expression "iVar16 = 7" (identifier "iVar16") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar17 = (byte *)((int)local_8c + -0x19ca1d);" (assignment_expression "pbVar17 = (byte *)((int)local_8c + -0x19ca1d)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)((int)local_8c + -0x19ca1d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_8c + -0x19ca1d)" (( "(") (binary_expression "(int)local_8c + -0x19ca1d" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "-0x19ca1d")) () ")")))) (; ";")) (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" (identifier "pbVar20") (= "=") (identifier "pbVar19")) (; ";")) (do_statement "do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          } while (bVar23);" (do "do") (compound_statement "{\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar22 = *pbVar17 < *pbVar20;\n            bVar23 = *pbVar17 == *pbVar20;\n            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar17 < *pbVar20;" (assignment_expression "bVar22 = *pbVar17 < *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar17 < *pbVar20" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *pbVar20;" (assignment_expression "bVar23 = *pbVar17 == *pbVar20" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *pbVar20" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar24 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "pbVar19 = pbVar19 + 7;" (assignment_expression "pbVar19 = pbVar19 + 7" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 7" (identifier "pbVar19") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if ((!bVar22 && !bVar23) != bVar22) {\n            pbVar19 = local_ac;\n          }" (if "if") (parenthesized_expression "((!bVar22 && !bVar23) != bVar22)" (( "(") (binary_expression "(!bVar22 && !bVar23) != bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" (( "(") (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (!= "!=") (identifier "bVar22")) () ")")) (compound_statement "{\n            pbVar19 = local_ac;\n          }" ({ "{") (expression_statement "pbVar19 = local_ac;" (assignment_expression "pbVar19 = local_ac" (identifier "pbVar19") (= "=") (identifier "local_ac")) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_ac = pbVar19;" (assignment_expression "local_ac = pbVar19" (identifier "local_ac") (= "=") (identifier "pbVar19")) (; ";")) (if_statement "if (local_a5 != '\0') {\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }" (if "if") (parenthesized_expression "(local_a5 != '\0')" (( "(") (binary_expression "local_a5 != '\0'" (identifier "local_a5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }\n          local_84 = &local_34;\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_9c;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;\n          FUN_00073b00();\n          puVar1 = *(undefined4 **)(local_a0 + 4);\n          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }\n          *(uint ***)(puVar15 + -0xc) = local_84;\n          *(int *)(puVar15 + -0x10) = local_b8;\n          local_2c = local_90;\n          local_28 = (int)local_90 >> 0x1f;\n          local_30 = (uint *)0x0;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;\n          local_34 = puVar13;\n          FUN_00073e70();\n          local_30 = (uint *)0x0;\n          uVar12 = *param_7;\n          puVar1 = *(undefined4 **)(local_a4 + 4);\n          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar15 + -0xc) = &local_54;\n          *(int *)(puVar15 + -0x10) = local_bc;\n          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;\n          FUN_00074020();\n        }" ({ "{") (if_statement "if (local_a6 == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }" (if "if") (parenthesized_expression "(local_a6 == 0)" (( "(") (binary_expression "local_a6 == 0" (identifier "local_a6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }" ({ "{") (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" (identifier "local_34") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n            local_34 = local_94;\n            local_30 = local_88;\n          }" (else "else") (compound_statement "{\n            local_34 = local_94;\n            local_30 = local_88;\n          }" ({ "{") (expression_statement "local_34 = local_94;" (assignment_expression "local_34 = local_94" (identifier "local_34") (= "=") (identifier "local_94")) (; ";")) (expression_statement "local_30 = local_88;" (assignment_expression "local_30 = local_88" (identifier "local_30") (= "=") (identifier "local_88")) (; ";")) (} "}")))) (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" (identifier "local_84") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar15 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = local_9c;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_9c" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_9c")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa22ed;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa22ed" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa22ed")) (; ";")) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" (identifier "FUN_00073b00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar1 = *(undefined4 **)(local_a0 + 4);" (assignment_expression "puVar1 = *(undefined4 **)(local_a0 + 4)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined4 **)(local_a0 + 4)" (* "*") (cast_expression "(undefined4 **)(local_a0 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_a0 + 4)" (( "(") (binary_expression "local_a0 + 4" (identifier "local_a0") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (puVar1 == *(undefined4 **)(local_a0 + 8)) {\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }\n          else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }" (if "if") (parenthesized_expression "(puVar1 == *(undefined4 **)(local_a0 + 8))" (( "(") (binary_expression "puVar1 == *(undefined4 **)(local_a0 + 8)" (identifier "puVar1") (== "==") (pointer_expression "*(undefined4 **)(local_a0 + 8)" (* "*") (cast_expression "(undefined4 **)(local_a0 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_a0 + 8)" (( "(") (binary_expression "local_a0 + 8" (identifier "local_a0") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n            *(uint ***)(puVar15 + -8) = &local_5c;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a0;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;\n            FUN_000726c0();\n          }" ({ "{") (expression_statement "*(uint ***)(puVar15 + -8) = &local_5c;" (assignment_expression "*(uint ***)(puVar15 + -8) = &local_5c" (pointer_expression "*(uint ***)(puVar15 + -8)" (* "*") (cast_expression "(uint ***)(puVar15 + -8)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";")) (expression_statement "*(undefined4 **)(puVar15 + -0xc) = puVar1;" (assignment_expression "*(undefined4 **)(puVar15 + -0xc) = puVar1" (pointer_expression "*(undefined4 **)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = local_a0;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a0" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2743;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2743" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa2743")) (; ";")) (expression_statement "FUN_000726c0();" (call_expression "FUN_000726c0()" (identifier "FUN_000726c0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }" (else "else") (compound_statement "{\n            *puVar1 = local_5c;\n            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;\n          }" ({ "{") (expression_statement "*puVar1 = local_5c;" (assignment_expression "*puVar1 = local_5c" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(undefined4 **)(local_a0 + 4) = puVar1 + 1;" (assignment_expression "*(undefined4 **)(local_a0 + 4) = puVar1 + 1" (pointer_expression "*(undefined4 **)(local_a0 + 4)" (* "*") (cast_expression "(undefined4 **)(local_a0 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_a0 + 4)" (( "(") (binary_expression "local_a0 + 4" (identifier "local_a0") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar1 + 1" (identifier "puVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "*(uint ***)(puVar15 + -0xc) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar15 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = local_b8;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_b8" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "local_2c = local_90;" (assignment_expression "local_2c = local_90" (identifier "local_2c") (= "=") (identifier "local_90")) (; ";")) (expression_statement "local_28 = (int)local_90 >> 0x1f;" (assignment_expression "local_28 = (int)local_90 >> 0x1f" (identifier "local_28") (= "=") (binary_expression "(int)local_90 >> 0x1f" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2338;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2338" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa2338")) (; ";")) (expression_statement "local_34 = puVar13;" (assignment_expression "local_34 = puVar13" (identifier "local_34") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" (identifier "FUN_00073e70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar12 = *param_7;" (assignment_expression "uVar12 = *param_7" (identifier "uVar12") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (expression_statement "puVar1 = *(undefined4 **)(local_a4 + 4);" (assignment_expression "puVar1 = *(undefined4 **)(local_a4 + 4)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined4 **)(local_a4 + 4)" (* "*") (cast_expression "(undefined4 **)(local_a4 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_a4 + 4)" (( "(") (binary_expression "local_a4 + 4" (identifier "local_a4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (identifier "local_34") (= "=") (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (if_statement "if (puVar1 == *(undefined4 **)(local_a4 + 8)) {\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }\n          else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }" (if "if") (parenthesized_expression "(puVar1 == *(undefined4 **)(local_a4 + 8))" (( "(") (binary_expression "puVar1 == *(undefined4 **)(local_a4 + 8)" (identifier "puVar1") (== "==") (pointer_expression "*(undefined4 **)(local_a4 + 8)" (* "*") (cast_expression "(undefined4 **)(local_a4 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_a4 + 8)" (( "(") (binary_expression "local_a4 + 8" (identifier "local_a4") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n            *(uint ***)(puVar15 + -8) = local_84;\n            *(undefined4 **)(puVar15 + -0xc) = puVar1;\n            *(int *)(puVar15 + -0x10) = local_a4;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;\n            FUN_00072a40();\n          }" ({ "{") (expression_statement "*(uint ***)(puVar15 + -8) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -8) = local_84" (pointer_expression "*(uint ***)(puVar15 + -8)" (* "*") (cast_expression "(uint ***)(puVar15 + -8)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(undefined4 **)(puVar15 + -0xc) = puVar1;" (assignment_expression "*(undefined4 **)(puVar15 + -0xc) = puVar1" (pointer_expression "*(undefined4 **)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = local_a4;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_a4" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a4")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2702;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2702" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa2702")) (; ";")) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" (identifier "FUN_00072a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }" (else "else") (compound_statement "{\n            *puVar1 = local_34;\n            puVar1[1] = 0;\n            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;\n          }" ({ "{") (expression_statement "*puVar1 = local_34;" (assignment_expression "*puVar1 = local_34" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(local_a4 + 4) = puVar1 + 2;" (assignment_expression "*(undefined4 **)(local_a4 + 4) = puVar1 + 2" (pointer_expression "*(undefined4 **)(local_a4 + 4)" (* "*") (cast_expression "(undefined4 **)(local_a4 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_a4 + 4)" (( "(") (binary_expression "local_a4 + 4" (identifier "local_a4") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar1 + 2" (identifier "puVar1") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "local_54 = (uint *)0x0;" (assignment_expression "local_54 = (uint *)0x0" (identifier "local_54") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(uint ***)(puVar15 + -0xc) = &local_54;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = &local_54" (pointer_expression "*(uint ***)(puVar15 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar15 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = local_bc;" (assignment_expression "*(int *)(puVar15 + -0x10) = local_bc" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa2380;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa2380" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa2380")) (; ";")) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" (identifier "FUN_00074020") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_a6 == 0) goto LAB_000a20dc;" (if "if") (parenthesized_expression "(local_a6 == 0)" (( "(") (binary_expression "local_a6 == 0" (identifier "local_a6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a20dc;" (goto "goto") (statement_identifier "LAB_000a20dc") (; ";"))) (labeled_statement "LAB_000a20bc:\n        if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }" (statement_identifier "LAB_000a20bc") (: ":") (if_statement "if (*(int *)(*local_b0 + 8) == 0) {\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }" (if "if") (parenthesized_expression "(*(int *)(*local_b0 + 8) == 0)" (( "(") (binary_expression "*(int *)(*local_b0 + 8) == 0" (pointer_expression "*(int *)(*local_b0 + 8)" (* "*") (cast_expression "(int *)(*local_b0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_b0 + 8)" (( "(") (binary_expression "*local_b0 + 8" (pointer_expression "*local_b0" (* "*") (identifier "local_b0")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;\n          *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;\n          FUN_002446e0();\n        }" ({ "{") (expression_statement "*(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf" (pointer_expression "*(undefined ***)(puVar15 + -8)" (* "*") (cast_expression "(undefined ***)(puVar15 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_8c + -0x64ebf" (identifier "local_8c") (+ "+") (number_literal "-0x64ebf"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa292e;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa292e" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa292e")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_b0 + 8) + 0x18b1)" (* "*") (cast_expression "(char *)(*(int *)(*local_b0 + 8) + 0x18b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*local_b0 + 8) + 0x18b1)" (( "(") (binary_expression "*(int *)(*local_b0 + 8) + 0x18b1" (pointer_expression "*(int *)(*local_b0 + 8)" (* "*") (cast_expression "(int *)(*local_b0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_b0 + 8)" (( "(") (binary_expression "*local_b0 + 8" (pointer_expression "*local_b0" (* "*") (identifier "local_b0")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x18b1")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_5c = param_4;\n          iVar16 = *(int *)(param_2 + 0x158) + 0x14;\n          local_58 = param_5;\n          local_54 = local_94;\n          local_50 = local_88;\n          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n          iVar8 = iVar16;\n          if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }\n          local_68 = iVar9 + 0x18;\n          *(undefined4 *)(puVar15 + -0xc) = 1;\n          *(undefined4 *)(puVar15 + -0x10) = 0;\n          *(int **)(puVar15 + -0x14) = local_c4;\n          *(uint ***)(puVar15 + -0x18) = &local_54;\n          *(int *)(puVar15 + -0x1c) = local_68;\n          *(undefined1 **)(puVar15 + -0x20) = local_c0;\n          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;\n          FUN_00074340();\n          piVar14 = *(int **)(*local_b0 + 0xc);\n          if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }\n          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);\n          if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }\n          pbVar19 = local_ac;\n          piVar14 = (int *)(puVar15 + -4);\n          if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "local_5c = param_4;" (assignment_expression "local_5c = param_4" (identifier "local_5c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "iVar16 = *(int *)(param_2 + 0x158) + 0x14;" (assignment_expression "iVar16 = *(int *)(param_2 + 0x158) + 0x14" (identifier "iVar16") (= "=") (binary_expression "*(int *)(param_2 + 0x158) + 0x14" (pointer_expression "*(int *)(param_2 + 0x158)" (* "*") (cast_expression "(int *)(param_2 + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x158)" (( "(") (binary_expression "param_2 + 0x158" (identifier "param_2") (+ "+") (number_literal "0x158")) () ")")))) (+ "+") (number_literal "0x14"))) (; ";")) (expression_statement "local_58 = param_5;" (assignment_expression "local_58 = param_5" (identifier "local_58") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_54 = local_94;" (assignment_expression "local_54 = local_94" (identifier "local_54") (= "=") (identifier "local_94")) (; ";")) (expression_statement "local_50 = local_88;" (assignment_expression "local_50 = local_88" (identifier "local_50") (= "=") (identifier "local_88")) (; ";")) (expression_statement "iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);" (assignment_expression "iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(*(int *)(param_2 + 0x158) + 0x18)" (* "*") (cast_expression "(int *)(*(int *)(param_2 + 0x158) + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x158) + 0x18)" (( "(") (binary_expression "*(int *)(param_2 + 0x158) + 0x18" (pointer_expression "*(int *)(param_2 + 0x158)" (* "*") (cast_expression "(int *)(param_2 + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x158)" (( "(") (binary_expression "param_2 + 0x158" (identifier "param_2") (+ "+") (number_literal "0x158")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar8 = iVar16;" (assignment_expression "iVar8 = iVar16" (identifier "iVar8") (= "=") (identifier "iVar16")) (; ";")) (if_statement "if (iVar4 == 0) {\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }\n          else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000a24e0:\n            local_64 = &local_5c;\n            *(uint ****)(puVar15 + -0x10) = &local_64;\n            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;\n            FUN_00097a00();\n            iVar9 = local_70;\n          }" ({ "{") (labeled_statement "LAB_000a24e0:\n            local_64 = &local_5c;" (statement_identifier "LAB_000a24e0") (: ":") (expression_statement "local_64 = &local_5c;" (assignment_expression "local_64 = &local_5c" (identifier "local_64") (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";"))) (expression_statement "*(uint ****)(puVar15 + -0x10) = &local_64;" (assignment_expression "*(uint ****)(puVar15 + -0x10) = &local_64" (pointer_expression "*(uint ****)(puVar15 + -0x10)" (* "*") (cast_expression "(uint ****)(puVar15 + -0x10)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_64" (& "&") (identifier "local_64"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0xa24f8;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0xa24f8" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa24f8")) (; ";")) (expression_statement "FUN_00097a00();" (call_expression "FUN_00097a00()" (identifier "FUN_00097a00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar9 = local_70;" (assignment_expression "iVar9 = local_70" (identifier "iVar9") (= "=") (identifier "local_70")) (; ";")) (} "}")) (else_clause "else {\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }" (else "else") (compound_statement "{\n            do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);\nLAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;\n          }" ({ "{") (do_statement "do {\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            } while (*piVar14 != 0);" (do "do") (compound_statement "{\n              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }\n              piVar14 = (int *)(iVar9 + 0xc);\n              iVar4 = *piVar14;\n              iVar9 = iVar8;\n            }" ({ "{") (while_statement "while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))) {\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }" (while "while") (parenthesized_expression "((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     )))" (( "(") (parenthesized_expression "(iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     ))" (( "(") (comma_expression "iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     )" (assignment_expression "iVar9 = iVar4" (identifier "iVar9") (= "=") (identifier "iVar4")) (, ",") (binary_expression "param_4 <= *(uint **)(iVar9 + 0x10) &&\n                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     )" (binary_expression "param_4 <= *(uint **)(iVar9 + 0x10)" (identifier "param_4") (<= "<=") (pointer_expression "*(uint **)(iVar9 + 0x10)" (* "*") (cast_expression "(uint **)(iVar9 + 0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")"))))) (&& "&&") (parenthesized_expression "((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))\n                     )" (( "(") (parenthesized_expression "(param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))" (( "(") (binary_expression "param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14))" (binary_expression "param_4 != *(uint **)(iVar9 + 0x10)" (identifier "param_4") (!= "!=") (pointer_expression "*(uint **)(iVar9 + 0x10)" (* "*") (cast_expression "(uint **)(iVar9 + 0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")"))))) (|| "||") (parenthesized_expression "(param_5 <= *(uint **)(iVar9 + 0x14))" (( "(") (binary_expression "param_5 <= *(uint **)(iVar9 + 0x14)" (identifier "param_5") (<= "<=") (pointer_expression "*(uint **)(iVar9 + 0x14)" (* "*") (cast_expression "(uint **)(iVar9 + 0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                iVar4 = *(int *)(iVar9 + 8);\n                iVar8 = iVar9;\n                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;\n              }" ({ "{") (expression_statement "iVar4 = *(int *)(iVar9 + 8);" (assignment_expression "iVar4 = *(int *)(iVar9 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar9 + 8)" (* "*") (cast_expression "(int *)(iVar9 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar8 = iVar9;" (assignment_expression "iVar8 = iVar9" (identifier "iVar8") (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar9 + 8) == 0" (pointer_expression "*(int *)(iVar9 + 8)" (* "*") (cast_expression "(int *)(iVar9 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a24ca;" (goto "goto") (statement_identifier "LAB_000a24ca") (; ";"))) (} "}"))) (expression_statement "piVar14 = (int *)(iVar9 + 0xc);" (assignment_expression "piVar14 = (int *)(iVar9 + 0xc)" (identifier "piVar14") (= "=") (cast_expression "(int *)(iVar9 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "iVar4 = *piVar14;" (assignment_expression "iVar4 = *piVar14" (identifier "iVar4") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (expression_statement "iVar9 = iVar8;" (assignment_expression "iVar9 = iVar8" (identifier "iVar9") (= "=") (identifier "iVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar14 != 0)" (( "(") (binary_expression "*piVar14 != 0" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_000a24ca:\n            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;" (statement_identifier "LAB_000a24ca") (: ":") (if_statement "if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))\n            goto LAB_000a24e0;" (if "if") (parenthesized_expression "(((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))" (( "(") (binary_expression "((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||\n               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14))))" (parenthesized_expression "((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10)))" (( "(") (binary_expression "(iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))" (parenthesized_expression "(iVar16 == iVar9)" (( "(") (binary_expression "iVar16 == iVar9" (identifier "iVar16") (== "==") (identifier "iVar9")) () ")")) (|| "||") (parenthesized_expression "(param_4 < *(uint **)(iVar9 + 0x10))" (( "(") (binary_expression "param_4 < *(uint **)(iVar9 + 0x10)" (identifier "param_4") (< "<") (pointer_expression "*(uint **)(iVar9 + 0x10)" (* "*") (cast_expression "(uint **)(iVar9 + 0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14))))" (( "(") (parenthesized_expression "(param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))" (( "(") (binary_expression "param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14))" (binary_expression "param_4 == *(uint **)(iVar9 + 0x10)" (identifier "param_4") (== "==") (pointer_expression "*(uint **)(iVar9 + 0x10)" (* "*") (cast_expression "(uint **)(iVar9 + 0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")"))))) (&& "&&") (parenthesized_expression "(param_5 < *(uint **)(iVar9 + 0x14))" (( "(") (binary_expression "param_5 < *(uint **)(iVar9 + 0x14)" (identifier "param_5") (< "<") (pointer_expression "*(uint **)(iVar9 + 0x14)" (* "*") (cast_expression "(uint **)(iVar9 + 0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000a24e0;" (goto "goto") (statement_identifier "LAB_000a24e0") (; ";")))) (} "}")))) (expression_statement "local_68 = iVar9 + 0x18;" (assignment_expression "local_68 = iVar9 + 0x18" (identifier "local_68") (= "=") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(puVar15 + -0x14) = local_c4;" (assignment_expression "*(int **)(puVar15 + -0x14) = local_c4" (pointer_expression "*(int **)(puVar15 + -0x14)" (* "*") (cast_expression "(int **)(puVar15 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(uint ***)(puVar15 + -0x18) = &local_54;" (assignment_expression "*(uint ***)(puVar15 + -0x18) = &local_54" (pointer_expression "*(uint ***)(puVar15 + -0x18)" (* "*") (cast_expression "(uint ***)(puVar15 + -0x18)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";")) (expression_statement "*(int *)(puVar15 + -0x1c) = local_68;" (assignment_expression "*(int *)(puVar15 + -0x1c) = local_68" (pointer_expression "*(int *)(puVar15 + -0x1c)" (* "*") (cast_expression "(int *)(puVar15 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_68")) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = local_c0;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = local_c0" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_c0")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0xa2521;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0xa2521" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0xa2521")) (; ";")) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" (identifier "FUN_00074340") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar14 = *(int **)(*local_b0 + 0xc);" (assignment_expression "piVar14 = *(int **)(*local_b0 + 0xc)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(*local_b0 + 0xc)" (* "*") (cast_expression "(int **)(*local_b0 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_b0 + 0xc)" (( "(") (binary_expression "*local_b0 + 0xc" (pointer_expression "*local_b0" (* "*") (identifier "local_b0")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (piVar14 == (int *)0x0) {\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "(piVar14 == (int *)0x0)" (( "(") (binary_expression "piVar14 == (int *)0x0" (identifier "piVar14") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;\n            *(undefined4 *)(puVar15 + -0x10) = 0x73;\n            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;" (assignment_expression "*(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082" (pointer_expression "*(undefined ***)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined ***)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "local_8c + -0x65082" (identifier "local_8c") (+ "+") (number_literal "-0x65082"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x73")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;" (assignment_expression "*(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93" (pointer_expression "*(int *)(puVar15 + -0x14)" (* "*") (cast_expression "(int *)(puVar15 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "(int)local_8c + -0x1a1d93" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0xa296d;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0xa296d" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0xa296d")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "ppuVar18 = *(undefined ***)(*piVar14 + 0x104);" (assignment_expression "ppuVar18 = *(undefined ***)(*piVar14 + 0x104)" (identifier "ppuVar18") (= "=") (pointer_expression "*(undefined ***)(*piVar14 + 0x104)" (* "*") (cast_expression "(undefined ***)(*piVar14 + 0x104)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*piVar14 + 0x104)" (( "(") (binary_expression "*piVar14 + 0x104" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (+ "+") (number_literal "0x104")) () ")"))))) (; ";")) (if_statement "if (ppuVar18 != local_8c + -0x1510f0) {\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }" (if "if") (parenthesized_expression "(ppuVar18 != local_8c + -0x1510f0)" (( "(") (binary_expression "ppuVar18 != local_8c + -0x1510f0" (identifier "ppuVar18") (!= "!=") (binary_expression "local_8c + -0x1510f0" (identifier "local_8c") (+ "+") (number_literal "-0x1510f0"))) () ")")) (compound_statement "{\n            *(int *)(puVar15 + -0xc) = local_98;\n            *(uint **)(puVar15 + -0x10) = local_88;\n            *(uint **)(puVar15 + -0x14) = local_94;\n            *(uint **)(puVar15 + -0x18) = param_5;\n            *(uint **)(puVar15 + -0x1c) = param_4;\n            *(int *)(puVar15 + -0x20) = param_2;\n            *(int **)(puVar15 + -0x24) = piVar14;\n            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;\n            (*(code *)ppuVar18)();\n          }" ({ "{") (expression_statement "*(int *)(puVar15 + -0xc) = local_98;" (assignment_expression "*(int *)(puVar15 + -0xc) = local_98" (pointer_expression "*(int *)(puVar15 + -0xc)" (* "*") (cast_expression "(int *)(puVar15 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_98")) (; ";")) (expression_statement "*(uint **)(puVar15 + -0x10) = local_88;" (assignment_expression "*(uint **)(puVar15 + -0x10) = local_88" (pointer_expression "*(uint **)(puVar15 + -0x10)" (* "*") (cast_expression "(uint **)(puVar15 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_88")) (; ";")) (expression_statement "*(uint **)(puVar15 + -0x14) = local_94;" (assignment_expression "*(uint **)(puVar15 + -0x14) = local_94" (pointer_expression "*(uint **)(puVar15 + -0x14)" (* "*") (cast_expression "(uint **)(puVar15 + -0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_94")) (; ";")) (expression_statement "*(uint **)(puVar15 + -0x18) = param_5;" (assignment_expression "*(uint **)(puVar15 + -0x18) = param_5" (pointer_expression "*(uint **)(puVar15 + -0x18)" (* "*") (cast_expression "(uint **)(puVar15 + -0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(uint **)(puVar15 + -0x1c) = param_4;" (assignment_expression "*(uint **)(puVar15 + -0x1c) = param_4" (pointer_expression "*(uint **)(puVar15 + -0x1c)" (* "*") (cast_expression "(uint **)(puVar15 + -0x1c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x20) = param_2;" (assignment_expression "*(int *)(puVar15 + -0x20) = param_2" (pointer_expression "*(int *)(puVar15 + -0x20)" (* "*") (cast_expression "(int *)(puVar15 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int **)(puVar15 + -0x24) = piVar14;" (assignment_expression "*(int **)(puVar15 + -0x24) = piVar14" (pointer_expression "*(int **)(puVar15 + -0x24)" (* "*") (cast_expression "(int **)(puVar15 + -0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "piVar14")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = 0xa26c1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = 0xa26c1" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (number_literal "0xa26c1")) (; ";")) (expression_statement "(*(code *)ppuVar18)();" (call_expression "(*(code *)ppuVar18)()" (parenthesized_expression "(*(code *)ppuVar18)" (( "(") (pointer_expression "*(code *)ppuVar18" (* "*") (cast_expression "(code *)ppuVar18" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar18"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pbVar19 = local_ac;" (assignment_expression "pbVar19 = local_ac" (identifier "pbVar19") (= "=") (identifier "local_ac")) (; ";")) (expression_statement "piVar14 = (int *)(puVar15 + -4);" (assignment_expression "piVar14 = (int *)(puVar15 + -4)" (identifier "piVar14") (= "=") (cast_expression "(int *)(puVar15 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (; ";")) (if_statement "if (local_ac != (byte *)0x0) {\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(local_ac != (byte *)0x0)" (( "(") (binary_expression "local_ac != (byte *)0x0" (identifier "local_ac") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            local_88 = &local_2c;\n            local_84 = &local_34;\n            iVar16 = *(int *)(param_2 + 0x158);\n            *(byte **)(puVar15 + -0x14) = local_ac;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;\n            local_34 = local_88;\n            sVar5 = strlen(*(char **)(puVar15 + -0x14));\n            ppuVar3 = local_84;\n            *(undefined4 *)(puVar15 + -8) = 0;\n            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;\n            *(byte **)(puVar15 + -0x10) = pbVar19;\n            *(uint ***)(puVar15 + -0x14) = local_84;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;\n            FUN_00072b90();\n            *(uint ***)(puVar15 + -0xc) = ppuVar3;\n            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;\n            *(int **)(puVar15 + -0x14) = &local_80;\n            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;\n            FUN_00094bd0();\n            iVar16 = local_80;\n            if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }\n            iVar4 = *(int *)(param_2 + 0x158);\n            piVar14 = (int *)(puVar15 + -8);\n            if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }\n          }" ({ "{") (expression_statement "local_88 = &local_2c;" (assignment_expression "local_88 = &local_2c" (identifier "local_88") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";")) (expression_statement "local_84 = &local_34;" (assignment_expression "local_84 = &local_34" (identifier "local_84") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "iVar16 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar16 = *(int *)(param_2 + 0x158)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(param_2 + 0x158)" (* "*") (cast_expression "(int *)(param_2 + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x158)" (( "(") (binary_expression "param_2 + 0x158" (identifier "param_2") (+ "+") (number_literal "0x158")) () ")"))))) (; ";")) (expression_statement "*(byte **)(puVar15 + -0x14) = local_ac;" (assignment_expression "*(byte **)(puVar15 + -0x14) = local_ac" (pointer_expression "*(byte **)(puVar15 + -0x14)" (* "*") (cast_expression "(byte **)(puVar15 + -0x14)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_ac")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0xa258d;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0xa258d" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0xa258d")) (; ";")) (expression_statement "local_34 = local_88;" (assignment_expression "local_34 = local_88" (identifier "local_34") (= "=") (identifier "local_88")) (; ";")) (expression_statement "sVar5 = strlen(*(char **)(puVar15 + -0x14));" (assignment_expression "sVar5 = strlen(*(char **)(puVar15 + -0x14))" (identifier "sVar5") (= "=") (call_expression "strlen(*(char **)(puVar15 + -0x14))" (identifier "strlen") (argument_list "(*(char **)(puVar15 + -0x14))" (( "(") (pointer_expression "*(char **)(puVar15 + -0x14)" (* "*") (cast_expression "(char **)(puVar15 + -0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "ppuVar3 = local_84;" (assignment_expression "ppuVar3 = local_84" (identifier "ppuVar3") (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;" (assignment_expression "*(byte **)(puVar15 + -0xc) = pbVar19 + sVar5" (pointer_expression "*(byte **)(puVar15 + -0xc)" (* "*") (cast_expression "(byte **)(puVar15 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "pbVar19 + sVar5" (identifier "pbVar19") (+ "+") (identifier "sVar5"))) (; ";")) (expression_statement "*(byte **)(puVar15 + -0x10) = pbVar19;" (assignment_expression "*(byte **)(puVar15 + -0x10) = pbVar19" (pointer_expression "*(byte **)(puVar15 + -0x10)" (* "*") (cast_expression "(byte **)(puVar15 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pbVar19")) (; ";")) (expression_statement "*(uint ***)(puVar15 + -0x14) = local_84;" (assignment_expression "*(uint ***)(puVar15 + -0x14) = local_84" (pointer_expression "*(uint ***)(puVar15 + -0x14)" (* "*") (cast_expression "(uint ***)(puVar15 + -0x14)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0xa259f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0xa259f" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0xa259f")) (; ";")) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" (identifier "FUN_00072b90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(uint ***)(puVar15 + -0xc) = ppuVar3;" (assignment_expression "*(uint ***)(puVar15 + -0xc) = ppuVar3" (pointer_expression "*(uint ***)(puVar15 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar15 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "ppuVar3")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = iVar16 + 0x44;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar16 + 0x44" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "iVar16 + 0x44" (identifier "iVar16") (+ "+") (number_literal "0x44"))) (; ";")) (expression_statement "*(int **)(puVar15 + -0x14) = &local_80;" (assignment_expression "*(int **)(puVar15 + -0x14) = &local_80" (pointer_expression "*(int **)(puVar15 + -0x14)" (* "*") (cast_expression "(int **)(puVar15 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_80" (& "&") (identifier "local_80"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0xa25b0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0xa25b0" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0xa25b0")) (; ";")) (expression_statement "FUN_00094bd0();" (call_expression "FUN_00094bd0()" (identifier "FUN_00094bd0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar16 = local_80;" (assignment_expression "iVar16 = local_80" (identifier "iVar16") (= "=") (identifier "local_80")) (; ";")) (if_statement "if (local_34 != local_88) {\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }" (if "if") (parenthesized_expression "(local_34 != local_88)" (( "(") (binary_expression "local_34 != local_88" (identifier "local_34") (!= "!=") (identifier "local_88")) () ")")) (compound_statement "{\n              *(uint **)(puVar15 + -0x18) = local_34;\n              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;\n              FUN_003ae080();\n            }" ({ "{") (expression_statement "*(uint **)(puVar15 + -0x18) = local_34;" (assignment_expression "*(uint **)(puVar15 + -0x18) = local_34" (pointer_expression "*(uint **)(puVar15 + -0x18)" (* "*") (cast_expression "(uint **)(puVar15 + -0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0xa25d0" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0xa25d0")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar4 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar4 = *(int *)(param_2 + 0x158)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_2 + 0x158)" (* "*") (cast_expression "(int *)(param_2 + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x158)" (( "(") (binary_expression "param_2 + 0x158" (identifier "param_2") (+ "+") (number_literal "0x158")) () ")"))))) (; ";")) (expression_statement "piVar14 = (int *)(puVar15 + -8);" (assignment_expression "piVar14 = (int *)(puVar15 + -8)" (identifier "piVar14") (= "=") (cast_expression "(int *)(puVar15 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (if_statement "if (iVar16 != iVar4 + 0x48) {\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }" (if "if") (parenthesized_expression "(iVar16 != iVar4 + 0x48)" (( "(") (binary_expression "iVar16 != iVar4 + 0x48" (identifier "iVar16") (!= "!=") (binary_expression "iVar4 + 0x48" (identifier "iVar4") (+ "+") (number_literal "0x48"))) () ")")) (compound_statement "{\n              local_34 = param_4;\n              local_30 = param_5;\n              iVar8 = *(int *)(iVar4 + 0x18);\n              iVar9 = iVar4 + 0x14;\n              if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }\n              piVar14 = (int *)(puVar15 + -8);\n              puVar15 = puVar15 + -8;\n              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }\n            }" ({ "{") (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" (identifier "local_34") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_30 = param_5;" (assignment_expression "local_30 = param_5" (identifier "local_30") (= "=") (identifier "param_5")) (; ";")) (expression_statement "iVar8 = *(int *)(iVar4 + 0x18);" (assignment_expression "iVar8 = *(int *)(iVar4 + 0x18)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar4 + 0x18)" (* "*") (cast_expression "(int *)(iVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar9 = iVar4 + 0x14;" (assignment_expression "iVar9 = iVar4 + 0x14" (identifier "iVar9") (= "=") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14"))) (; ";")) (if_statement "if (*(int *)(iVar4 + 0x18) == 0) {\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }\n              else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x18) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x18) == 0" (pointer_expression "*(int *)(iVar4 + 0x18)" (* "*") (cast_expression "(int *)(iVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;\n                local_60 = local_84;\n                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;\n                FUN_00097a00();\n                iVar10 = local_70;\n              }" ({ "{") (labeled_statement "LAB_000a2640:\n                *(uint ****)(puVar15 + -0x18) = &local_60;" (statement_identifier "LAB_000a2640") (: ":") (expression_statement "*(uint ****)(puVar15 + -0x18) = &local_60;" (assignment_expression "*(uint ****)(puVar15 + -0x18) = &local_60" (pointer_expression "*(uint ****)(puVar15 + -0x18)" (* "*") (cast_expression "(uint ****)(puVar15 + -0x18)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_60" (& "&") (identifier "local_60"))) (; ";"))) (expression_statement "local_60 = local_84;" (assignment_expression "local_60 = local_84" (identifier "local_60") (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0xa2658;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0xa2658" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0xa2658")) (; ";")) (expression_statement "FUN_00097a00();" (call_expression "FUN_00097a00()" (identifier "FUN_00097a00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar10 = local_70;" (assignment_expression "iVar10 = local_70" (identifier "iVar10") (= "=") (identifier "local_70")) (; ";")) (} "}")) (else_clause "else {\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }" (else "else") (compound_statement "{\n                do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);\nLAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;\n              }" ({ "{") (do_statement "do {\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                } while (*piVar14 != 0);" (do "do") (compound_statement "{\n                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }\n                  piVar14 = (int *)(iVar10 + 0xc);\n                  iVar8 = *piVar14;\n                  iVar10 = iVar9;\n                }" ({ "{") (while_statement "while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }" (while "while") (parenthesized_expression "((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))))))" (( "(") (parenthesized_expression "(iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))))" (( "(") (comma_expression "iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar8" (identifier "iVar10") (= "=") (identifier "iVar8")) (, ",") (binary_expression "param_4 <= *(uint **)(iVar10 + 0x10) &&\n                         ((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(uint **)(iVar10 + 0x10)" (identifier "param_4") (<= "<=") (pointer_expression "*(uint **)(iVar10 + 0x10)" (* "*") (cast_expression "(uint **)(iVar10 + 0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (&& "&&") (parenthesized_expression "((param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))))" (( "(") (parenthesized_expression "(param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14)))" (( "(") (binary_expression "param_4 != *(uint **)(iVar10 + 0x10) ||\n                          (param_5 <= *(uint **)(iVar10 + 0x14))" (binary_expression "param_4 != *(uint **)(iVar10 + 0x10)" (identifier "param_4") (!= "!=") (pointer_expression "*(uint **)(iVar10 + 0x10)" (* "*") (cast_expression "(uint **)(iVar10 + 0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (|| "||") (parenthesized_expression "(param_5 <= *(uint **)(iVar10 + 0x14))" (( "(") (binary_expression "param_5 <= *(uint **)(iVar10 + 0x14)" (identifier "param_5") (<= "<=") (pointer_expression "*(uint **)(iVar10 + 0x14)" (* "*") (cast_expression "(uint **)(iVar10 + 0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                    iVar8 = *(int *)(iVar10 + 8);\n                    iVar9 = iVar10;\n                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;\n                  }" ({ "{") (expression_statement "iVar8 = *(int *)(iVar10 + 8);" (assignment_expression "iVar8 = *(int *)(iVar10 + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar9 = iVar10;" (assignment_expression "iVar9 = iVar10" (identifier "iVar9") (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar10 + 8) == 0" (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a262a;" (goto "goto") (statement_identifier "LAB_000a262a") (; ";"))) (} "}"))) (expression_statement "piVar14 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar14 = (int *)(iVar10 + 0xc)" (identifier "piVar14") (= "=") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "iVar8 = *piVar14;" (assignment_expression "iVar8 = *piVar14" (identifier "iVar8") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" (identifier "iVar10") (= "=") (identifier "iVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar14 != 0)" (( "(") (binary_expression "*piVar14 != 0" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_000a262a:\n                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;" (statement_identifier "LAB_000a262a") (: ":") (if_statement "if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   ) goto LAB_000a2640;" (if "if") (parenthesized_expression "(((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))\n                   )" (( "(") (binary_expression "((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||\n                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))" (parenthesized_expression "((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10)))" (( "(") (binary_expression "(iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))" (parenthesized_expression "(iVar10 == iVar4 + 0x14)" (( "(") (binary_expression "iVar10 == iVar4 + 0x14" (identifier "iVar10") (== "==") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14"))) () ")")) (|| "||") (parenthesized_expression "(param_4 < *(uint **)(iVar10 + 0x10))" (( "(") (binary_expression "param_4 < *(uint **)(iVar10 + 0x10)" (identifier "param_4") (< "<") (pointer_expression "*(uint **)(iVar10 + 0x10)" (* "*") (cast_expression "(uint **)(iVar10 + 0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))" (( "(") (parenthesized_expression "(param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14)))" (( "(") (binary_expression "param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))" (binary_expression "param_4 == *(uint **)(iVar10 + 0x10)" (identifier "param_4") (== "==") (pointer_expression "*(uint **)(iVar10 + 0x10)" (* "*") (cast_expression "(uint **)(iVar10 + 0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (&& "&&") (parenthesized_expression "(param_5 < *(uint **)(iVar10 + 0x14))" (( "(") (binary_expression "param_5 < *(uint **)(iVar10 + 0x14)" (identifier "param_5") (< "<") (pointer_expression "*(uint **)(iVar10 + 0x14)" (* "*") (cast_expression "(uint **)(iVar10 + 0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000a2640;" (goto "goto") (statement_identifier "LAB_000a2640") (; ";")))) (} "}")))) (expression_statement "piVar14 = (int *)(puVar15 + -8);" (assignment_expression "piVar14 = (int *)(puVar15 + -8)" (identifier "piVar14") (= "=") (cast_expression "(int *)(puVar15 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "puVar15 = puVar15 + -8;" (assignment_expression "puVar15 = puVar15 + -8" (identifier "puVar15") (= "=") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8"))) (; ";")) (for_statement "for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;\n                  puVar1 = (undefined4 *)*puVar1) {\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }" (for "for") (( "(") (assignment_expression "puVar1 = *(undefined4 **)(iVar16 + 0x30)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined4 **)(iVar16 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar16 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar16 + 0x30)" (( "(") (binary_expression "iVar16 + 0x30" (identifier "iVar16") (+ "+") (number_literal "0x30")) () ")"))))) (; ";") (binary_expression "puVar1 != (undefined4 *)0x0" (identifier "puVar1") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar1 = (undefined4 *)*puVar1" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)*puVar1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) () ")") (compound_statement "{\n                *(undefined4 *)(puVar15 + -0xc) = 1;\n                *(undefined4 *)(puVar15 + -0x10) = 0;\n                *(int **)(puVar15 + -0x14) = &local_6c;\n                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;\n                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;\n                *(undefined1 **)(puVar15 + -0x20) = local_c0;\n                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;\n                local_6c = iVar10 + 0x18;\n                FUN_00074340();\n                piVar14 = (int *)(puVar15 + -4);\n                puVar15 = puVar15 + -4;\n              }" ({ "{") (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(puVar15 + -0x14) = &local_6c;" (assignment_expression "*(int **)(puVar15 + -0x14) = &local_6c" (pointer_expression "*(int **)(puVar15 + -0x14)" (* "*") (cast_expression "(int **)(puVar15 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "*(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;" (assignment_expression "*(undefined4 **)(puVar15 + -0x18) = puVar1 + 1" (pointer_expression "*(undefined4 **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar1 + 1" (identifier "puVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(puVar15 + -0x1c) = iVar10 + 0x18;" (assignment_expression "*(int *)(puVar15 + -0x1c) = iVar10 + 0x18" (pointer_expression "*(int *)(puVar15 + -0x1c)" (* "*") (cast_expression "(int *)(puVar15 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = local_c0;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = local_c0" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_c0")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0xa268b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0xa268b" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0xa268b")) (; ";")) (expression_statement "local_6c = iVar10 + 0x18;" (assignment_expression "local_6c = iVar10 + 0x18" (identifier "local_6c") (= "=") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" (identifier "FUN_00074340") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar14 = (int *)(puVar15 + -4);" (assignment_expression "piVar14 = (int *)(puVar15 + -4)" (identifier "piVar14") (= "=") (cast_expression "(int *)(puVar15 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "puVar15 = puVar15 + -4;" (assignment_expression "puVar15 = puVar15 + -4" (identifier "puVar15") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_000a20dc:\n      local_b4 = local_b4 + 1;" (statement_identifier "LAB_000a20dc") (: ":") (expression_statement "local_b4 = local_b4 + 1;" (assignment_expression "local_b4 = local_b4 + 1" (identifier "local_b4") (= "=") (binary_expression "local_b4 + 1" (identifier "local_b4") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "param_7 = param_7 + 3;" (assignment_expression "param_7 = param_7 + 3" (identifier "param_7") (= "=") (binary_expression "param_7 + 3" (identifier "param_7") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar15 = (undefined1 *)piVar14;" (assignment_expression "puVar15 = (undefined1 *)piVar14" (identifier "puVar15") (= "=") (cast_expression "(undefined1 *)piVar14" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar14"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_8 != local_b4)" (( "(") (binary_expression "param_8 != local_b4" (identifier "param_8") (!= "!=") (identifier "local_b4")) () ")")) (; ";")) (} "}"))) (if_statement "if (local_4c[0] != local_c8) {\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }" (if "if") (parenthesized_expression "(local_4c[0] != local_c8)" (( "(") (binary_expression "local_4c[0] != local_c8" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_c8")) () ")")) (compound_statement "{\n    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;\n    FUN_003ae080();\n  }" ({ "{") (expression_statement "*(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];" (assignment_expression "*(undefined1 **)((int)piVar14 + -0x10) = local_4c[0]" (pointer_expression "*(undefined1 **)((int)piVar14 + -0x10)" (* "*") (cast_expression "(undefined1 **)((int)piVar14 + -0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar14 + -0x10)" (( "(") (binary_expression "(int)piVar14 + -0x10" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;" (assignment_expression "*(undefined4 *)((int)piVar14 + -0x14) = 0xa278a" (pointer_expression "*(undefined4 *)((int)piVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + -0x14)" (( "(") (binary_expression "(int)piVar14 + -0x14" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xa278a")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void gc_process_relocs(Target_sparc<32,_true> * this, Symbol_table *
   symtab, Layout * layout, Sized_relobj_file<32,_true> * object, uint data_shndx, uint param_5,
   uchar * prelocs, size_t reloc_count, Output_section * output_section, bool
   needs_special_offset_handling, size_t local_symbol_count, uchar * plocal_symbols) */

void __thiscall
anon_unknown.dwarf_484c35::Target_sparc<32,_true>::gc_process_relocs
          (Target_sparc<32,_true> *this,Symbol_table *symtab,Layout *layout,
          Sized_relobj_file<32,_true> *object,uint data_shndx,uint param_5,uchar *prelocs,
          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,
          size_t param_10,uchar *plocal_symbols)

{
  _Rb_tree_header *p_Var1;
  _Base_ptr *pp_Var2;
  General_options *pGVar3;
  pointer puVar4;
  uint uVar5;
  pointer ppSVar6;
  _Base_ptr p_Var7;
  Target *pTVar8;
  Garbage_collection *pGVar9;
  undefined4 *puVar10;
  _func_int_varargs *p_Var11;
  Icf *pIVar12;
  undefined1 *puVar13;
  _Alloc_hider _Var14;
  Parameters *pPVar15;
  _func_int_varargs **pp_Var16;
  size_t sVar17;
  Xindex *pXVar18;
  pointer pcVar19;
  int extraout_ECX;
  int iVar20;
  _Base_ptr p_Var21;
  _Rb_tree_header *p_Var22;
  int extraout_ECX_00;
  int extraout_ECX_01;
  int extraout_ECX_02;
  byte bVar23;
  uint uVar24;
  Relobj *pRVar25;
  General_options **ppGVar26;
  undefined4 *puVar27;
  byte *pbVar28;
  undefined **ppuVar29;
  undefined4 unaff_EDI;
  _func_int_varargs **pp_Var30;
  bool bVar31;
  bool bVar32;
  bool bVar33;
  byte bVar34;
  General_options *pGStack_d0;
  undefined1 auStack_cc [4];
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *local_c8;
  __node_gen_type *local_c4;
  undefined1 *local_c0;
  Reloc_addend_size_info *local_bc;
  Addend_info *local_b8;
  size_t local_b4;
  Parameters **local_b0;
  _func_int_varargs **local_ac;
  byte local_a6;
  char local_a5;
  Offset_info *local_a4;
  Symbol_info *local_a0;
  mapped_type *local_9c;
  int local_98;
  Output_segment *local_94;
  pointer local_90;
  undefined **local_8c;
  Relobj *local_88;
  Icf *local_84;
  undefined1 *local_80;
  undefined1 local_7c [12];
  _Rb_tree_header *local_70;
  __node_gen_type __node_gen_1;
  __node_gen_type __node_gen;
  Section_id *local_64;
  Icf *local_60;
  Section_id src_id_1;
  Section_id dst_id;
  string src_section_name;
  Section_id src_id;
  pointer local_2c;
  _Alloc_hider local_28;
  
  bVar34 = 0;
  local_8c = &_GLOBAL_OFFSET_TABLE_;
  local_b0 = &gold::parameters;
  pGVar3 = gold::parameters->options_;
  if (pGVar3 == (General_options *)0x0) {
    pGStack_d0 = pGVar3;
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if (pGVar3->icf_status_ == ICF_NONE) {
    local_c8 = &src_section_name.field_2;
    pGStack_d0 = (General_options *)0x0;
    src_section_name._M_dataplus._M_p = (pointer)local_c8;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>(&src_section_name,"","");
    ppGVar26 = (General_options **)auStack_cc;
    iVar20 = extraout_ECX_00;
  }
  else {
    (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])
              (&src_section_name,object,data_shndx);
    local_c8 = &src_section_name.field_2;
    ppGVar26 = &pGStack_d0;
    iVar20 = extraout_ECX;
  }
  _Var14._M_p = src_section_name._M_dataplus._M_p;
  pPVar15 = *local_b0;
  if (pPVar15->options_ == (General_options *)0x0) {
    *(undefined4 *)((int)ppGVar26 + -4) = unaff_EDI;
    *(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf;
    *(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c;
    *(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2989;
    gold::do_gold_unreachable
              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),
               *(char **)((int)ppGVar26 + -8));
  }
  if (pPVar15->options_->icf_status_ == ICF_NONE) {
LAB_000a1f35:
    local_a5 = '\0';
    local_bc = (Reloc_addend_size_info *)0x0;
    local_a4 = (Offset_info *)0x0;
    local_b8 = (Addend_info *)0x0;
    local_a0 = (Symbol_info *)0x0;
    local_9c = (mapped_type *)0x0;
  }
  else {
    local_88 = (Relobj *)&local_2c;
    src_id.first = (Relobj *)&local_2c;
    pcVar19 = (pointer)0xffffffff;
    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {
      *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;
      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa27ef;
      sVar17 = strlen(*(char **)((int)ppGVar26 + -0x10));
      pcVar19 = _Var14._M_p + sVar17;
    }
    *(undefined4 *)((int)ppGVar26 + -4) = 0;
    *(pointer *)((int)ppGVar26 + -8) = pcVar19;
    local_84 = (Icf *)&src_id;
    *(pointer *)((int)ppGVar26 + -0xc) = _Var14._M_p;
    *(Icf **)((int)ppGVar26 + -0x10) = local_84;
                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */
    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2804;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>();
    iVar20 = 5;
    bVar33 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar26 + -0x10);
    bVar31 = ppGVar26 == (General_options **)0x0;
    ppuVar29 = local_8c + -0x67293;
    pRVar25 = src_id.first;
    do {
      if (iVar20 == 0) break;
      iVar20 = iVar20 + -1;
      bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;
      bVar33 = *(byte *)ppuVar29 < bVar23;
      bVar31 = *(byte *)ppuVar29 == bVar23;
      ppuVar29 = (undefined **)((int)ppuVar29 + (uint)bVar34 * -2 + 1);
      pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);
    } while (bVar31);
    bVar32 = false;
    bVar33 = (!bVar33 && !bVar31) == bVar33;
    if (!bVar33) {
      iVar20 = 0xf;
      pbVar28 = (byte *)((int)local_8c + -0x19ca46);
      pRVar25 = src_id.first;
      do {
        if (iVar20 == 0) break;
        iVar20 = iVar20 + -1;
        bVar23 = *(byte *)&(pRVar25->super_Object)._vptr_Object;
        bVar32 = *pbVar28 < bVar23;
        bVar33 = *pbVar28 == bVar23;
        pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;
        pRVar25 = (Relobj *)((int)pRVar25 + (uint)bVar34 * -2 + 1);
      } while (bVar33);
      if ((!bVar32 && !bVar33) != bVar32) {
        if (src_id.first == local_88) {
          pPVar15 = *local_b0;
        }
        else {
          *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;
          *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa28d3;
          operator_delete(*(void **)((int)ppGVar26 + -0x10));
          pPVar15 = *local_b0;
          iVar20 = extraout_ECX_02;
        }
        goto LAB_000a1f35;
      }
    }
    if (src_id.first != local_88) {
      *(Relobj **)((int)ppGVar26 + -0x10) = src_id.first;
      *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29dd;
      operator_delete(*(void **)((int)ppGVar26 + -0x10));
    }
    *(Icf **)((int)ppGVar26 + -0xc) = local_84;
    src_id.first = (Relobj *)object;
    src_id.second = data_shndx;
    local_84 = symtab->icf_;
    *(Reloc_info_list **)((int)ppGVar26 + -0x10) = &symtab->icf_->reloc_info_list_;
    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa2873;
    local_9c = 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>
                              **)((int)ppGVar26 + -0x10),*(key_type **)((int)ppGVar26 + -0xc));
    local_a0 = &local_9c->symbol_info;
    local_bc = &local_9c->reloc_addend_size_info;
    local_b8 = &local_9c->addend_info;
    local_a4 = &local_9c->offset_info;
    pPVar15 = *local_b0;
    local_a5 = '\x01';
    iVar20 = extraout_ECX_01;
  }
  if (pPVar15->options_ == (General_options *)0x0) {
    *(int *)((int)ppGVar26 + -4) = iVar20;
    *(undefined ***)((int)ppGVar26 + -8) = local_8c + -0x64ebf;
    *(undefined4 *)((int)ppGVar26 + -0xc) = 0x5c;
    *(int *)((int)ppGVar26 + -0x10) = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa29a5;
    gold::do_gold_unreachable
              (*(char **)((int)ppGVar26 + -0x10),*(int *)((int)ppGVar26 + -0xc),
               *(char **)((int)ppGVar26 + -8));
  }
  if (reloc_count != 0) {
    local_ac = (_func_int_varargs **)0x0;
    local_c0 = local_7c;
    local_b4 = 0;
    local_c4 = &__node_gen;
    puVar27 = ppGVar26;
    do {
      uVar24 = *(uint *)(prelocs + 4);
      uVar5 = *(uint *)(prelocs + 8);
      local_90 = (pointer)(uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |
                          uVar5 << 0x18);
      uVar24 = ((uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 | uVar24 << 0x18) >> 8;
      ppGVar26 = (General_options **)puVar27;
      if (uVar24 < param_10) {
        if (plocal_symbols == (uchar *)0x0) {
          puVar27[-2] = local_8c + -0x65123;
          puVar27[-3] = 0xea;
          puVar27[-4] = (int)local_8c + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          puVar27[-5] = &UNK_000a2909;
          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);
        }
        local_88 = (Relobj *)
                   (uint)(ushort)(*(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) << 8 |
                                 *(ushort *)(plocal_symbols + uVar24 * 0x10 + 0xe) >> 8);
        if (local_88 < (Relobj *)0xff00) {
LAB_000a2144:
          uVar5 = *(uint *)(plocal_symbols + uVar24 * 0x10 + 4);
          pRVar25 = (Relobj *)
                    (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18
                    );
          local_98 = (int)&local_90->first + (int)pRVar25;
          if (local_a5 != '\0') {
            src_id.first = (Relobj *)object;
            src_id.second = (uint)local_88;
            puVar27[-3] = (Icf *)&src_id;
            puVar27[-4] = local_9c;
            local_84 = (Icf *)&src_id;
            puVar27[-5] = 0xa2188;
            std::
            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                      ((vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
                        *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]);
            bVar23 = plocal_symbols[uVar24 * 0x10 + 0xc];
            bVar33 = true;
joined_r0x000a200c:
            if ((bVar23 & 0xf) == 3) {
              puVar27[-3] = local_84;
              puVar27[-4] = local_a0;
              src_id.first = (Relobj *)0xffffffff;
              puVar27[-5] = 0xa21b7;
              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
              emplace_back<gold::Symbol*>
                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],
                         (Symbol **)puVar27[-3]);
            }
            else {
              puVar27[-3] = local_84;
              puVar27[-4] = local_a0;
              src_id.first = (Relobj *)0x0;
              puVar27[-5] = 0xa202a;
              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
              emplace_back<gold::Symbol*>
                        ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],
                         (Symbol **)puVar27[-3]);
            }
            src_id.first = pRVar25;
            puVar27[-3] = local_84;
            puVar27[-4] = local_b8;
            local_2c = local_90;
            src_id.second = 0;
            local_28._M_p = (pointer)((int)local_90 >> 0x1f);
            puVar27[-5] = 0xa2057;
            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>_>
                      ((vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
                        *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3]);
            src_id.second = 0;
            uVar24 = *(uint *)prelocs;
            puVar4 = (local_a4->
                     super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                     )._M_impl._M_finish;
            src_id.first = (Relobj *)
                           (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |
                           uVar24 << 0x18);
            if (puVar4 == (local_a4->
                          super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                          )._M_impl._M_end_of_storage) {
              puVar27[-2] = local_84;
              puVar27[-3] = puVar4;
              puVar27[-4] = local_a4;
              puVar27[-5] = 0xa2722;
              std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::
              _M_realloc_insert<long_long_unsigned_int_const&>
                        ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)
                         puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);
            }
            else {
              *(Relobj **)puVar4 = src_id.first;
              *(uint *)((int)puVar4 + 4) = 0;
              (local_a4->
              super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
              _M_impl._M_finish = puVar4 + 1;
            }
            dst_id.first = (Relobj *)0x0;
            puVar27[-3] = &dst_id;
            puVar27[-4] = local_bc;
            puVar27[-5] = 0xa209f;
            std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                      ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],
                       (uint *)puVar27[-3]);
            if (!bVar33) goto LAB_000a20dc;
          }
          if ((Relobj *)data_shndx != local_88) {
            local_94 = (Output_segment *)object;
            goto LAB_000a20bc;
          }
        }
        else {
          if (local_88 == (Relobj *)0xffff) {
            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;
            if (pXVar18 == (Xindex *)0x0) {
              pp_Var16 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.
                         _vptr_Object;
              puVar27[-4] = object;
              p_Var11 = pp_Var16[0x1b];
              puVar27[-5] = 0xa26de;
              pXVar18 = (Xindex *)(*p_Var11)();
              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;
            }
            puVar27[-2] = uVar24;
            puVar27[-3] = object;
            puVar27[-4] = pXVar18;
            puVar27[-5] = 0xa21e1;
            local_88 = (Relobj *)
                       gold::Xindex::sym_xindex_to_shndx
                                 ((Xindex *)puVar27[-4],(Object *)puVar27[-3],puVar27[-2]);
            goto LAB_000a2144;
          }
          uVar5 = *(uint *)(plocal_symbols + uVar24 * 0x10 + 4);
          pRVar25 = (Relobj *)
                    (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18
                    );
          local_98 = (int)&local_90->first + (int)pRVar25;
          if (local_a5 != '\0') {
            src_id.first = (Relobj *)0x0;
            puVar27[-3] = (Icf *)&src_id;
            puVar27[-4] = local_9c;
            src_id.second = 0;
            local_84 = (Icf *)&src_id;
                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */
            puVar27[-5] = 0xa1ffe;
            std::
            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                      ((vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
                        *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]);
            bVar23 = plocal_symbols[uVar24 * 0x10 + 0xc];
            bVar33 = false;
            goto joined_r0x000a200c;
          }
        }
      }
      else {
        if (uVar24 < object->local_symbol_count_) {
          src_id_1.first = (Relobj *)0x0;
LAB_000a244f:
          puVar27[-2] = local_8c + -0x65123;
          puVar27[-3] = 0x11c;
          puVar27[-4] = (int)local_8c + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          puVar27[-5] = 0xa2470;
          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);
        }
        uVar24 = uVar24 - object->local_symbol_count_;
        ppSVar6 = (object->symbols_).
                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start
        ;
        local_84 = (Icf *)(object->symbols_).
                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                          _M_finish;
        if ((uint)((int)local_84 - (int)ppSVar6 >> 2) <= uVar24) {
          puVar27[-2] = local_8c + -0x65096;
          puVar27[-3] = 0x8ad;
          puVar27[-4] = (int)local_8c + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          puVar27[-5] = 0xa294f;
          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);
        }
        src_id_1.first = (Relobj *)ppSVar6[uVar24];
        if (src_id_1.first == (Relobj *)0x0) goto LAB_000a244f;
        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {
          puVar27[-3] = src_id_1.first;
          puVar27[-4] = symtab;
          puVar27[-5] = 0xa243a;
          src_id_1.first =
               (Relobj *)
               gold::Symbol_table::resolve_forwards
                         ((Symbol_table *)puVar27[-4],(Symbol *)puVar27[-3]);
        }
        bVar33 = (((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0;
        if (bVar33) {
          local_94 = ((anon_union_4_3_b0f6f408_for_u1_ *)
                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;
          bVar33 = ((uint)local_94->output_lists_[3].
                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                          ._M_impl._M_end_of_storage & 1) == 0;
          if (bVar33) {
            bVar23 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5;
            local_88 = (Relobj *)
                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;
            bVar33 = (bVar23 & 1) == 0;
            local_a6 = bVar23 & 1;
          }
          else {
            local_a6 = 0;
            local_88 = (Relobj *)0x0;
            local_94 = (Output_segment *)0x0;
          }
          pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_98 = (int)&local_90->first + (int)pRVar25;
        }
        else {
          pRVar25 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_a6 = 0;
          local_88 = (Relobj *)0x0;
          local_94 = (Output_segment *)0x0;
          local_98 = (int)&local_90->first + (int)pRVar25;
        }
        bVar31 = false;
        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;
        iVar20 = 8;
        pbVar28 = (byte *)((int)local_8c + -0x19ca26);
        pp_Var30 = pp_Var16;
        do {
          if (iVar20 == 0) break;
          iVar20 = iVar20 + -1;
          bVar31 = *pbVar28 < *(byte *)pp_Var30;
          bVar33 = *pbVar28 == *(byte *)pp_Var30;
          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;
          pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);
        } while (bVar33);
        bVar32 = false;
        bVar33 = (!bVar31 && !bVar33) == bVar31;
        if (bVar33) {
          local_ac = pp_Var16 + 2;
        }
        else {
          iVar20 = 7;
          pbVar28 = (byte *)((int)local_8c + -0x19ca1d);
          pp_Var30 = pp_Var16;
          do {
            if (iVar20 == 0) break;
            iVar20 = iVar20 + -1;
            bVar32 = *pbVar28 < *(byte *)pp_Var30;
            bVar33 = *pbVar28 == *(byte *)pp_Var30;
            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;
            pp_Var30 = (_func_int_varargs **)((int)pp_Var30 + (uint)bVar34 * -2 + 1);
          } while (bVar33);
          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);
          if ((!bVar32 && !bVar33) != bVar32) {
            pp_Var16 = local_ac;
          }
          local_ac = pp_Var16;
        }
        if (local_a5 != '\0') {
          if (local_a6 == 0) {
            src_id.first = (Relobj *)0x0;
            src_id.second = 0;
          }
          else {
            src_id.first = (Relobj *)local_94;
            src_id.second = (uint)local_88;
          }
          puVar27[-3] = (Icf *)&src_id;
          puVar27[-4] = local_9c;
          local_84 = (Icf *)&src_id;
          puVar27[-5] = 0xa22ed;
          std::
          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                    ((vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
                      *)puVar27[-4],(pair<gold::Relobj*,_unsigned_int> *)puVar27[-3]);
          ppSVar6 = (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
                    _M_impl._M_finish;
          if (ppSVar6 ==
              (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
              _M_end_of_storage) {
            puVar27[-2] = &src_id_1;
            puVar27[-3] = ppSVar6;
            puVar27[-4] = local_a0;
            puVar27[-5] = 0xa2743;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
            _M_realloc_insert<gold::Symbol*_const&>
                      ((vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *)puVar27[-4],
                       (Symbol **)puVar27[-3],(Symbol **)puVar27[-2]);
          }
          else {
            *ppSVar6 = (Symbol *)src_id_1.first;
            (local_a0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
            _M_finish = ppSVar6 + 1;
          }
          puVar27[-3] = local_84;
          puVar27[-4] = local_b8;
          local_2c = local_90;
          src_id.first = pRVar25;
          src_id.second = 0;
          local_28._M_p = (pointer)((int)local_90 >> 0x1f);
          puVar27[-5] = 0xa2338;
          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>_>
                    ((vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
                      *)puVar27[-4],(pair<long_long_int,_long_long_int> *)puVar27[-3]);
          src_id.second = 0;
          uVar24 = *(uint *)prelocs;
          puVar4 = (local_a4->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          src_id.first = (Relobj *)
                         (uVar24 >> 0x18 | (uVar24 & 0xff0000) >> 8 | (uVar24 & 0xff00) << 8 |
                         uVar24 << 0x18);
          if (puVar4 == (local_a4->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            puVar27[-2] = local_84;
            puVar27[-3] = puVar4;
            puVar27[-4] = local_a4;
            puVar27[-5] = 0xa2702;
            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::
            _M_realloc_insert<long_long_unsigned_int_const&>
                      ((vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> *)
                       puVar27[-4],(ulonglong *)puVar27[-3],(ulonglong *)puVar27[-2]);
          }
          else {
            *(Relobj **)puVar4 = src_id.first;
            *(undefined4 *)((int)puVar4 + 4) = 0;
            (local_a4->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar4 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          puVar27[-3] = &dst_id;
          puVar27[-4] = local_bc;
          puVar27[-5] = 0xa2380;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    ((vector<unsigned_int,_std::allocator<unsigned_int>_> *)puVar27[-4],
                     (uint *)puVar27[-3]);
        }
        if (local_a6 == 0) goto LAB_000a20dc;
LAB_000a20bc:
        if ((*local_b0)->options_ == (General_options *)0x0) {
          puVar27[-2] = local_8c + -0x64ebf;
          puVar27[-3] = 0x5c;
          puVar27[-4] = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
          puVar27[-5] = 0xa292e;
          gold::do_gold_unreachable((char *)puVar27[-4],puVar27[-3],(char *)puVar27[-2]);
        }
        if (((*local_b0)->options_->gc_sections_).value != false) {
          src_id_1.first = (Relobj *)object;
          p_Var1 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
          src_id_1.second = data_shndx;
          dst_id.first = (Relobj *)local_94;
          dst_id.second = (uint)local_88;
          p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                   _M_parent;
          p_Var21 = &p_Var1->_M_header;
          if (p_Var7 == (_Base_ptr)0x0) {
LAB_000a24e0:
            puVar27[-4] = &local_64;
            local_64 = &src_id_1;
            puVar27[-5] = 0xa24f8;
            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<>_>
                      ((_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>_>_>_>_>_>
                        *)puVar27[-4],(_Base_ptr)puVar27[-3],
                       (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-2],
                       (tuple<> *)puVar27[-1],(piecewise_construct_t *)*puVar27);
            p_Var22 = local_70;
          }
          else {
            do {
              while ((p_Var22 = (_Rb_tree_header *)p_Var7,
                     object <= (Sized_relobj_file<32,_true> *)
                               ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&
                     ((object != (Sized_relobj_file<32,_true> *)
                                 ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||
                      (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {
                p_Var7 = (p_Var22->_M_header)._M_left;
                p_Var21 = &p_Var22->_M_header;
                if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a24ca;
              }
              pp_Var2 = &(p_Var22->_M_header)._M_right;
              p_Var7 = *pp_Var2;
              p_Var22 = (_Rb_tree_header *)p_Var21;
            } while (*pp_Var2 != (_Base_ptr)0x0);
LAB_000a24ca:
            if (((p_Var1 == p_Var22) ||
                (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||
               ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&
                (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a24e0;
          }
          __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);
          puVar27[-3] = 1;
          puVar27[-4] = 0;
          puVar27[-5] = local_c4;
          puVar27[-6] = &dst_id;
          puVar27[-7] = __node_gen._M_h;
          puVar27[-8] = local_c0;
          puVar27[-9] = 0xa2521;
          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>_>_>_>
                    ();
          pTVar8 = (*local_b0)->target_;
          if (pTVar8 == (Target *)0x0) {
            puVar27[-3] = local_8c + -0x65082;
            puVar27[-4] = 0x73;
            puVar27[-5] = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            puVar27[-6] = 0xa296d;
            gold::do_gold_unreachable((char *)puVar27[-5],puVar27[-4],(char *)puVar27[-3]);
          }
          ppuVar29 = (undefined **)pTVar8->_vptr_Target[0x41];
          if (ppuVar29 != local_8c + -0x1510f0) {
            puVar27[-3] = local_98;
            puVar27[-4] = local_88;
            puVar27[-5] = local_94;
            puVar27[-6] = data_shndx;
            puVar27[-7] = object;
            puVar27[-8] = symtab;
            puVar27[-9] = pTVar8;
            puVar27[-10] = 0xa26c1;
            (*(code *)ppuVar29)();
          }
          pp_Var16 = local_ac;
          ppGVar26 = (General_options **)(puVar27 + -1);
          if (local_ac != (_func_int_varargs **)0x0) {
            local_88 = (Relobj *)&local_2c;
            pGVar9 = symtab->gc_;
            puVar27[-5] = local_ac;
            local_84 = (Icf *)&src_id;
            src_id.first = (Relobj *)&local_2c;
            puVar27[-6] = 0xa258d;
            sVar17 = strlen((char *)puVar27[-5]);
            pIVar12 = local_84;
            puVar27[-2] = 0;
            puVar27[-3] = (byte *)((int)pp_Var16 + sVar17);
            puVar27[-4] = pp_Var16;
            puVar27[-5] = local_84;
            puVar27[-6] = 0xa259f;
            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
            _M_construct<char_const*>();
            puVar27[-3] = pIVar12;
            puVar27[-4] = &pGVar9->cident_sections_;
            puVar27[-5] = &local_80;
            puVar27[-6] = 0xa25b0;
            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((_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>_>_>_>_>_>
                    *)puVar27[-5],
                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)puVar27[-4])
            ;
            puVar13 = local_80;
            if (src_id.first != local_88) {
              puVar27[-6] = src_id.first;
              puVar27[-7] = 0xa25d0;
              operator_delete((void *)puVar27[-6]);
            }
            pGVar9 = symtab->gc_;
            ppGVar26 = (General_options **)(puVar27 + -2);
            if ((_Rb_tree_header *)puVar13 !=
                &(pGVar9->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {
              p_Var1 = &(pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
              src_id.first = (Relobj *)object;
              src_id.second = data_shndx;
              p_Var7 = (pGVar9->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                       _M_parent;
              p_Var21 = &p_Var1->_M_header;
              if (p_Var7 == (_Base_ptr)0x0) {
LAB_000a2640:
                puVar27[-6] = &local_60;
                local_60 = local_84;
                puVar27[-7] = 0xa2658;
                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<>_>
                          ((_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>_>_>_>_>_>
                            *)puVar27[-6],(_Base_ptr)puVar27[-5],
                           (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar27[-4],
                           (tuple<> *)puVar27[-3],(piecewise_construct_t *)puVar27[-2]);
                p_Var22 = local_70;
              }
              else {
                do {
                  while ((p_Var22 = (_Rb_tree_header *)p_Var7,
                         object <= (Sized_relobj_file<32,_true> *)
                                   ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&
                         ((object != (Sized_relobj_file<32,_true> *)
                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||
                          (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {
                    p_Var7 = (p_Var22->_M_header)._M_left;
                    p_Var21 = &p_Var22->_M_header;
                    if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_000a262a;
                  }
                  pp_Var2 = &(p_Var22->_M_header)._M_right;
                  p_Var7 = *pp_Var2;
                  p_Var22 = (_Rb_tree_header *)p_Var21;
                } while (*pp_Var2 != (_Base_ptr)0x0);
LAB_000a262a:
                if (((p_Var22 == p_Var1) ||
                    (object < (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count)) ||
                   ((object == (Sized_relobj_file<32,_true> *)p_Var22->_M_node_count &&
                    (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_000a2640;
              }
              ppGVar26 = (General_options **)(puVar27 + -2);
              puVar27 = puVar27 + -2;
              for (puVar10 = *(undefined4 **)(puVar13 + 0x30); puVar10 != (undefined4 *)0x0;
                  puVar10 = (undefined4 *)*puVar10) {
                *(undefined4 *)((int)puVar27 + -0xc) = 1;
                *(undefined4 *)((int)puVar27 + -0x10) = 0;
                *(__node_gen_type **)((int)puVar27 + -0x14) = &__node_gen_1;
                *(undefined4 **)((int)puVar27 + -0x18) = puVar10 + 1;
                *(int *)((int)puVar27 + -0x1c) = (int)(p_Var22 + 1) + 4;
                *(undefined1 **)((int)puVar27 + -0x20) = local_c0;
                *(undefined4 *)((int)puVar27 + -0x24) = 0xa268b;
                __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);
                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>_>_>_>
                          ();
                ppGVar26 = (General_options **)((int)puVar27 + -4);
                puVar27 = (undefined4 *)((int)puVar27 + -4);
              }
            }
          }
        }
      }
LAB_000a20dc:
      local_b4 = local_b4 + 1;
      prelocs = prelocs + 0xc;
      puVar27 = ppGVar26;
    } while (reloc_count != local_b4);
  }
  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 != local_c8) {
    *(pointer *)((int)ppGVar26 + -0x10) = src_section_name._M_dataplus._M_p;
    *(undefined4 *)((int)ppGVar26 + -0x14) = 0xa278a;
    operator_delete(*(void **)((int)ppGVar26 + -0x10));
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *param_5,
                 undefined4 param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10
                 ,uint param_11,int param_12)

{
  undefined4 *puVar1;
  code *pcVar2;
  uint **ppuVar3;
  int iVar4;
  size_t sVar5;
  uint uVar6;
  undefined1 *puVar7;
  int extraout_ECX;
  int iVar8;
  int iVar9;
  int iVar10;
  int extraout_ECX_00;
  int extraout_ECX_01;
  int extraout_ECX_02;
  byte bVar11;
  uint uVar12;
  uint *puVar13;
  int *piVar14;
  undefined1 *puVar15;
  int iVar16;
  byte *pbVar17;
  undefined **ppuVar18;
  byte *pbVar19;
  undefined4 unaff_EDI;
  byte *pbVar20;
  bool bVar21;
  bool bVar22;
  bool bVar23;
  byte bVar24;
  int iStack_d0;
  undefined1 auStack_cc [4];
  undefined1 *local_c8;
  int *local_c4;
  undefined1 *local_c0;
  int local_bc;
  int local_b8;
  int local_b4;
  int *local_b0;
  byte *local_ac;
  byte local_a6;
  char local_a5;
  int local_a4;
  int local_a0;
  int local_9c;
  int local_98;
  uint *local_94;
  uint local_90;
  undefined **local_8c;
  uint *local_88;
  uint **local_84;
  int local_80;
  undefined1 local_7c [12];
  int local_70;
  int local_6c;
  int local_68;
  uint **local_64;
  uint **local_60;
  uint *local_5c;
  uint *local_58;
  uint *local_54;
  uint *local_50;
  undefined1 *local_4c [2];
  undefined1 local_44 [16];
  uint *local_34;
  uint *local_30;
  uint local_2c;
  int local_28;
  
  bVar24 = 0;
  local_8c = &__DT_PLTGOT;
  local_b0 = &DAT_005ea7c8;
  iVar16 = *(int *)(DAT_005ea7c8 + 8);
  if (iVar16 == 0) {
    iStack_d0 = iVar16;
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(iVar16 + 0x5934) == 0) {
    local_c8 = local_44;
    iStack_d0 = 0;
    local_4c[0] = local_c8;
    FUN_00072b90(local_4c,"","");
    piVar14 = (int *)auStack_cc;
    iVar16 = extraout_ECX_00;
  }
  else {
    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);
    local_c8 = local_44;
    piVar14 = &iStack_d0;
    iVar16 = extraout_ECX;
  }
  puVar15 = local_4c[0];
  iVar4 = *local_b0;
  if (*(int *)(iVar4 + 8) == 0) {
    *(undefined4 *)((int)piVar14 + -4) = unaff_EDI;
    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;
    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;
    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2989;
    FUN_002446e0();
  }
  if (*(int *)(*(int *)(iVar4 + 8) + 0x5934) == 0) {
LAB_000a1f35:
    local_a5 = '\0';
    local_bc = 0;
    local_a4 = 0;
    local_b8 = 0;
    local_a0 = 0;
    local_9c = 0;
  }
  else {
    local_88 = &local_2c;
    puVar7 = (undefined1 *)0xffffffff;
    local_34 = local_88;
    if (local_4c[0] != (undefined1 *)0x0) {
      *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];
      *(undefined4 *)((int)piVar14 + -0x14) = 0xa27ef;
      sVar5 = strlen(*(char **)((int)piVar14 + -0x10));
      puVar7 = puVar15 + sVar5;
    }
    *(undefined4 *)((int)piVar14 + -4) = 0;
    *(undefined1 **)((int)piVar14 + -8) = puVar7;
    local_84 = &local_34;
    *(undefined1 **)((int)piVar14 + -0xc) = puVar15;
    *(uint ***)((int)piVar14 + -0x10) = local_84;
                    /* try { // try from 000a27ff to 000a29a4 has its CatchHandler @ 000a29e5 */
    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2804;
    FUN_00072b90();
    iVar16 = 5;
    bVar23 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar14 + -0x10);
    bVar21 = piVar14 == (int *)0x0;
    ppuVar18 = local_8c + -0x67293;
    puVar13 = local_34;
    do {
      if (iVar16 == 0) break;
      iVar16 = iVar16 + -1;
      bVar23 = *(byte *)ppuVar18 < (byte)*puVar13;
      bVar21 = *(byte *)ppuVar18 == (byte)*puVar13;
      ppuVar18 = (undefined **)((int)ppuVar18 + (uint)bVar24 * -2 + 1);
      puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);
    } while (bVar21);
    bVar22 = false;
    bVar23 = (!bVar23 && !bVar21) == bVar23;
    if (!bVar23) {
      iVar16 = 0xf;
      pbVar19 = (byte *)((int)local_8c + -0x19ca46);
      puVar13 = local_34;
      do {
        if (iVar16 == 0) break;
        iVar16 = iVar16 + -1;
        bVar22 = *pbVar19 < (byte)*puVar13;
        bVar23 = *pbVar19 == (byte)*puVar13;
        pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;
        puVar13 = (uint *)((int)puVar13 + (uint)bVar24 * -2 + 1);
      } while (bVar23);
      if ((!bVar22 && !bVar23) != bVar22) {
        if (local_34 == local_88) {
          iVar4 = *local_b0;
        }
        else {
          *(uint **)((int)piVar14 + -0x10) = local_34;
          *(undefined4 *)((int)piVar14 + -0x14) = 0xa28d3;
          FUN_003ae080();
          iVar4 = *local_b0;
          iVar16 = extraout_ECX_02;
        }
        goto LAB_000a1f35;
      }
    }
    if (local_34 != local_88) {
      *(uint **)((int)piVar14 + -0x10) = local_34;
      *(undefined4 *)((int)piVar14 + -0x14) = 0xa29dd;
      FUN_003ae080();
    }
    *(uint ***)((int)piVar14 + -0xc) = local_84;
    local_34 = param_4;
    local_30 = param_5;
    local_84 = *(uint ***)(param_2 + 0x15c);
    *(uint ***)((int)piVar14 + -0x10) = local_84 + 0x15;
    *(undefined4 *)((int)piVar14 + -0x14) = 0xa2873;
    local_9c = FUN_00074520();
    local_a0 = local_9c + 0xc;
    local_b8 = local_9c + 0x18;
    local_a4 = local_9c + 0x24;
    local_bc = local_9c + 0x30;
    iVar4 = *local_b0;
    local_a5 = '\x01';
    iVar16 = extraout_ECX_01;
  }
  if (*(int *)(iVar4 + 8) == 0) {
    *(int *)((int)piVar14 + -4) = iVar16;
    *(undefined ***)((int)piVar14 + -8) = local_8c + -0x64ebf;
    *(undefined4 *)((int)piVar14 + -0xc) = 0x5c;
    *(int *)((int)piVar14 + -0x10) = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)piVar14 + -0x14) = 0xa29a5;
    FUN_002446e0();
  }
  if (param_8 != 0) {
    local_ac = (byte *)0x0;
    local_c0 = local_7c;
    local_c4 = &local_68;
    local_b4 = 0;
    puVar15 = (undefined1 *)piVar14;
    do {
      uVar12 = param_7[1];
      uVar6 = param_7[2];
      local_90 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
      uVar12 = ((uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18) >> 8;
      piVar14 = (int *)puVar15;
      if (uVar12 < param_11) {
        if (param_12 == 0) {
          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;
          *(undefined4 *)(puVar15 + -0xc) = 0xea;
          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined **)(puVar15 + -0x14) = &UNK_000a2909;
          FUN_002446e0();
        }
        iVar16 = uVar12 * 0x10 + param_12;
        local_88 = (uint *)(uint)(ushort)(*(ushort *)(iVar16 + 0xe) << 8 |
                                         *(ushort *)(iVar16 + 0xe) >> 8);
        if (local_88 < (uint *)0xff00) {
LAB_000a2144:
          uVar12 = *(uint *)(iVar16 + 4);
          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                            uVar12 << 0x18);
          local_98 = (int)puVar13 + local_90;
          if (local_a5 != '\0') {
            local_34 = param_4;
            local_30 = local_88;
            local_84 = &local_34;
            *(uint ***)(puVar15 + -0xc) = local_84;
            *(int *)(puVar15 + -0x10) = local_9c;
            *(undefined4 *)(puVar15 + -0x14) = 0xa2188;
            FUN_00073b00();
            bVar11 = *(byte *)(iVar16 + 0xc);
            bVar23 = true;
joined_r0x000a200c:
            if ((bVar11 & 0xf) == 3) {
              *(uint ***)(puVar15 + -0xc) = local_84;
              *(int *)(puVar15 + -0x10) = local_a0;
              local_34 = (uint *)0xffffffff;
              *(undefined4 *)(puVar15 + -0x14) = 0xa21b7;
              FUN_00073ca0();
            }
            else {
              *(uint ***)(puVar15 + -0xc) = local_84;
              *(int *)(puVar15 + -0x10) = local_a0;
              local_34 = (uint *)0x0;
              *(undefined4 *)(puVar15 + -0x14) = 0xa202a;
              FUN_00073ca0();
            }
            *(uint ***)(puVar15 + -0xc) = local_84;
            *(int *)(puVar15 + -0x10) = local_b8;
            local_2c = local_90;
            local_28 = (int)local_90 >> 0x1f;
            local_30 = (uint *)0x0;
            *(undefined4 *)(puVar15 + -0x14) = 0xa2057;
            local_34 = puVar13;
            FUN_00073e70();
            local_30 = (uint *)0x0;
            uVar12 = *param_7;
            puVar1 = *(undefined4 **)(local_a4 + 4);
            local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                               uVar12 << 0x18);
            if (puVar1 == *(undefined4 **)(local_a4 + 8)) {
              *(uint ***)(puVar15 + -8) = local_84;
              *(undefined4 **)(puVar15 + -0xc) = puVar1;
              *(int *)(puVar15 + -0x10) = local_a4;
              *(undefined4 *)(puVar15 + -0x14) = 0xa2722;
              FUN_00072a40();
            }
            else {
              *puVar1 = local_34;
              puVar1[1] = 0;
              *(undefined4 **)(local_a4 + 4) = puVar1 + 2;
            }
            local_54 = (uint *)0x0;
            *(uint ***)(puVar15 + -0xc) = &local_54;
            *(int *)(puVar15 + -0x10) = local_bc;
            *(undefined4 *)(puVar15 + -0x14) = 0xa209f;
            FUN_00074020();
            if (!bVar23) goto LAB_000a20dc;
          }
          if (param_5 != local_88) {
            local_94 = param_4;
            goto LAB_000a20bc;
          }
        }
        else {
          if (local_88 == (uint *)0xffff) {
            uVar6 = param_4[0xc];
            if (uVar6 == 0) {
              uVar6 = *param_4;
              *(uint **)(puVar15 + -0x10) = param_4;
              pcVar2 = *(code **)(uVar6 + 0x6c);
              *(undefined4 *)(puVar15 + -0x14) = 0xa26de;
              uVar6 = (*pcVar2)();
              param_4[0xc] = uVar6;
            }
            *(uint *)(puVar15 + -8) = uVar12;
            *(uint **)(puVar15 + -0xc) = param_4;
            *(uint *)(puVar15 + -0x10) = uVar6;
            *(undefined4 *)(puVar15 + -0x14) = 0xa21e1;
            local_88 = (uint *)FUN_0028b7d0();
            goto LAB_000a2144;
          }
          uVar12 = *(uint *)(iVar16 + 4);
          puVar13 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                            uVar12 << 0x18);
          local_98 = (int)puVar13 + local_90;
          if (local_a5 != '\0') {
            local_84 = &local_34;
            local_34 = (uint *)0x0;
            *(uint ***)(puVar15 + -0xc) = local_84;
            *(int *)(puVar15 + -0x10) = local_9c;
            local_30 = (uint *)0x0;
                    /* try { // try from 000a1ff9 to 000a2742 has its CatchHandler @ 000a29e5 */
            *(undefined4 *)(puVar15 + -0x14) = 0xa1ffe;
            FUN_00073b00();
            bVar11 = *(byte *)(iVar16 + 0xc);
            bVar23 = false;
            goto joined_r0x000a200c;
          }
        }
      }
      else {
        if (uVar12 < param_4[0x2c]) {
          local_5c = (uint *)0x0;
LAB_000a244f:
          *(undefined ***)(puVar15 + -8) = local_8c + -0x65123;
          *(undefined4 *)(puVar15 + -0xc) = 0x11c;
          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar15 + -0x14) = 0xa2470;
          FUN_002446e0();
        }
        uVar12 = uVar12 - param_4[0x2c];
        local_84 = (uint **)param_4[0x30];
        if ((uint)((int)((int)local_84 - param_4[0x2f]) >> 2) <= uVar12) {
          *(undefined ***)(puVar15 + -8) = local_8c + -0x65096;
          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;
          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar15 + -0x14) = 0xa294f;
          FUN_002446e0();
        }
        local_5c = *(uint **)(param_4[0x2f] + uVar12 * 4);
        if (local_5c == (uint *)0x0) goto LAB_000a244f;
        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {
          *(uint **)(puVar15 + -0xc) = local_5c;
          *(int *)(puVar15 + -0x10) = param_2;
          *(undefined4 *)(puVar15 + -0x14) = 0xa243a;
          local_5c = (uint *)FUN_0034cd90();
        }
        bVar23 = (*(byte *)((int)local_5c + 0x2a) & 7) == 0;
        if (bVar23) {
          local_94 = (uint *)local_5c[2];
          bVar23 = (local_94[0xb] & 1) == 0;
          if (bVar23) {
            local_88 = (uint *)local_5c[3];
            bVar11 = *(byte *)((int)local_5c + 0x2b) >> 5;
            local_a6 = bVar11 & 1;
            bVar23 = (bVar11 & 1) == 0;
          }
          else {
            local_a6 = 0;
            local_88 = (uint *)0x0;
            local_94 = (uint *)0x0;
          }
          puVar13 = (uint *)local_5c[0xc];
        }
        else {
          puVar13 = (uint *)local_5c[0xc];
          local_a6 = 0;
          local_88 = (uint *)0x0;
          local_94 = (uint *)0x0;
        }
        local_98 = (int)puVar13 + local_90;
        bVar21 = false;
        pbVar19 = (byte *)*local_5c;
        iVar16 = 8;
        pbVar17 = (byte *)((int)local_8c + -0x19ca26);
        pbVar20 = pbVar19;
        do {
          if (iVar16 == 0) break;
          iVar16 = iVar16 + -1;
          bVar21 = *pbVar17 < *pbVar20;
          bVar23 = *pbVar17 == *pbVar20;
          pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;
        } while (bVar23);
        bVar22 = false;
        bVar23 = (!bVar21 && !bVar23) == bVar21;
        if (bVar23) {
          pbVar19 = pbVar19 + 8;
        }
        else {
          iVar16 = 7;
          pbVar17 = (byte *)((int)local_8c + -0x19ca1d);
          pbVar20 = pbVar19;
          do {
            if (iVar16 == 0) break;
            iVar16 = iVar16 + -1;
            bVar22 = *pbVar17 < *pbVar20;
            bVar23 = *pbVar17 == *pbVar20;
            pbVar17 = pbVar17 + (uint)bVar24 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;
          } while (bVar23);
          pbVar19 = pbVar19 + 7;
          if ((!bVar22 && !bVar23) != bVar22) {
            pbVar19 = local_ac;
          }
        }
        local_ac = pbVar19;
        if (local_a5 != '\0') {
          if (local_a6 == 0) {
            local_34 = (uint *)0x0;
            local_30 = (uint *)0x0;
          }
          else {
            local_34 = local_94;
            local_30 = local_88;
          }
          local_84 = &local_34;
          *(uint ***)(puVar15 + -0xc) = local_84;
          *(int *)(puVar15 + -0x10) = local_9c;
          *(undefined4 *)(puVar15 + -0x14) = 0xa22ed;
          FUN_00073b00();
          puVar1 = *(undefined4 **)(local_a0 + 4);
          if (puVar1 == *(undefined4 **)(local_a0 + 8)) {
            *(uint ***)(puVar15 + -8) = &local_5c;
            *(undefined4 **)(puVar15 + -0xc) = puVar1;
            *(int *)(puVar15 + -0x10) = local_a0;
            *(undefined4 *)(puVar15 + -0x14) = 0xa2743;
            FUN_000726c0();
          }
          else {
            *puVar1 = local_5c;
            *(undefined4 **)(local_a0 + 4) = puVar1 + 1;
          }
          *(uint ***)(puVar15 + -0xc) = local_84;
          *(int *)(puVar15 + -0x10) = local_b8;
          local_2c = local_90;
          local_28 = (int)local_90 >> 0x1f;
          local_30 = (uint *)0x0;
          *(undefined4 *)(puVar15 + -0x14) = 0xa2338;
          local_34 = puVar13;
          FUN_00073e70();
          local_30 = (uint *)0x0;
          uVar12 = *param_7;
          puVar1 = *(undefined4 **)(local_a4 + 4);
          local_34 = (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                             uVar12 << 0x18);
          if (puVar1 == *(undefined4 **)(local_a4 + 8)) {
            *(uint ***)(puVar15 + -8) = local_84;
            *(undefined4 **)(puVar15 + -0xc) = puVar1;
            *(int *)(puVar15 + -0x10) = local_a4;
            *(undefined4 *)(puVar15 + -0x14) = 0xa2702;
            FUN_00072a40();
          }
          else {
            *puVar1 = local_34;
            puVar1[1] = 0;
            *(undefined4 **)(local_a4 + 4) = puVar1 + 2;
          }
          local_54 = (uint *)0x0;
          *(uint ***)(puVar15 + -0xc) = &local_54;
          *(int *)(puVar15 + -0x10) = local_bc;
          *(undefined4 *)(puVar15 + -0x14) = 0xa2380;
          FUN_00074020();
        }
        if (local_a6 == 0) goto LAB_000a20dc;
LAB_000a20bc:
        if (*(int *)(*local_b0 + 8) == 0) {
          *(undefined ***)(puVar15 + -8) = local_8c + -0x64ebf;
          *(undefined4 *)(puVar15 + -0xc) = 0x5c;
          *(int *)(puVar15 + -0x10) = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar15 + -0x14) = 0xa292e;
          FUN_002446e0();
        }
        if (*(char *)(*(int *)(*local_b0 + 8) + 0x18b1) != '\0') {
          local_5c = param_4;
          iVar16 = *(int *)(param_2 + 0x158) + 0x14;
          local_58 = param_5;
          local_54 = local_94;
          local_50 = local_88;
          iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);
          iVar8 = iVar16;
          if (iVar4 == 0) {
LAB_000a24e0:
            local_64 = &local_5c;
            *(uint ****)(puVar15 + -0x10) = &local_64;
            *(undefined4 *)(puVar15 + -0x14) = 0xa24f8;
            FUN_00097a00();
            iVar9 = local_70;
          }
          else {
            do {
              while ((iVar9 = iVar4, param_4 <= *(uint **)(iVar9 + 0x10) &&
                     ((param_4 != *(uint **)(iVar9 + 0x10) || (param_5 <= *(uint **)(iVar9 + 0x14)))
                     ))) {
                iVar4 = *(int *)(iVar9 + 8);
                iVar8 = iVar9;
                if (*(int *)(iVar9 + 8) == 0) goto LAB_000a24ca;
              }
              piVar14 = (int *)(iVar9 + 0xc);
              iVar4 = *piVar14;
              iVar9 = iVar8;
            } while (*piVar14 != 0);
LAB_000a24ca:
            if (((iVar16 == iVar9) || (param_4 < *(uint **)(iVar9 + 0x10))) ||
               ((param_4 == *(uint **)(iVar9 + 0x10) && (param_5 < *(uint **)(iVar9 + 0x14)))))
            goto LAB_000a24e0;
          }
          local_68 = iVar9 + 0x18;
          *(undefined4 *)(puVar15 + -0xc) = 1;
          *(undefined4 *)(puVar15 + -0x10) = 0;
          *(int **)(puVar15 + -0x14) = local_c4;
          *(uint ***)(puVar15 + -0x18) = &local_54;
          *(int *)(puVar15 + -0x1c) = local_68;
          *(undefined1 **)(puVar15 + -0x20) = local_c0;
          *(undefined4 *)(puVar15 + -0x24) = 0xa2521;
          FUN_00074340();
          piVar14 = *(int **)(*local_b0 + 0xc);
          if (piVar14 == (int *)0x0) {
            *(undefined ***)(puVar15 + -0xc) = local_8c + -0x65082;
            *(undefined4 *)(puVar15 + -0x10) = 0x73;
            *(int *)(puVar15 + -0x14) = (int)local_8c + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar15 + -0x18) = 0xa296d;
            FUN_002446e0();
          }
          ppuVar18 = *(undefined ***)(*piVar14 + 0x104);
          if (ppuVar18 != local_8c + -0x1510f0) {
            *(int *)(puVar15 + -0xc) = local_98;
            *(uint **)(puVar15 + -0x10) = local_88;
            *(uint **)(puVar15 + -0x14) = local_94;
            *(uint **)(puVar15 + -0x18) = param_5;
            *(uint **)(puVar15 + -0x1c) = param_4;
            *(int *)(puVar15 + -0x20) = param_2;
            *(int **)(puVar15 + -0x24) = piVar14;
            *(undefined4 *)(puVar15 + -0x28) = 0xa26c1;
            (*(code *)ppuVar18)();
          }
          pbVar19 = local_ac;
          piVar14 = (int *)(puVar15 + -4);
          if (local_ac != (byte *)0x0) {
            local_88 = &local_2c;
            local_84 = &local_34;
            iVar16 = *(int *)(param_2 + 0x158);
            *(byte **)(puVar15 + -0x14) = local_ac;
            *(undefined4 *)(puVar15 + -0x18) = 0xa258d;
            local_34 = local_88;
            sVar5 = strlen(*(char **)(puVar15 + -0x14));
            ppuVar3 = local_84;
            *(undefined4 *)(puVar15 + -8) = 0;
            *(byte **)(puVar15 + -0xc) = pbVar19 + sVar5;
            *(byte **)(puVar15 + -0x10) = pbVar19;
            *(uint ***)(puVar15 + -0x14) = local_84;
            *(undefined4 *)(puVar15 + -0x18) = 0xa259f;
            FUN_00072b90();
            *(uint ***)(puVar15 + -0xc) = ppuVar3;
            *(int *)(puVar15 + -0x10) = iVar16 + 0x44;
            *(int **)(puVar15 + -0x14) = &local_80;
            *(undefined4 *)(puVar15 + -0x18) = 0xa25b0;
            FUN_00094bd0();
            iVar16 = local_80;
            if (local_34 != local_88) {
              *(uint **)(puVar15 + -0x18) = local_34;
              *(undefined4 *)(puVar15 + -0x1c) = 0xa25d0;
              FUN_003ae080();
            }
            iVar4 = *(int *)(param_2 + 0x158);
            piVar14 = (int *)(puVar15 + -8);
            if (iVar16 != iVar4 + 0x48) {
              local_34 = param_4;
              local_30 = param_5;
              iVar8 = *(int *)(iVar4 + 0x18);
              iVar9 = iVar4 + 0x14;
              if (*(int *)(iVar4 + 0x18) == 0) {
LAB_000a2640:
                *(uint ****)(puVar15 + -0x18) = &local_60;
                local_60 = local_84;
                *(undefined4 *)(puVar15 + -0x1c) = 0xa2658;
                FUN_00097a00();
                iVar10 = local_70;
              }
              else {
                do {
                  while ((iVar10 = iVar8, param_4 <= *(uint **)(iVar10 + 0x10) &&
                         ((param_4 != *(uint **)(iVar10 + 0x10) ||
                          (param_5 <= *(uint **)(iVar10 + 0x14)))))) {
                    iVar8 = *(int *)(iVar10 + 8);
                    iVar9 = iVar10;
                    if (*(int *)(iVar10 + 8) == 0) goto LAB_000a262a;
                  }
                  piVar14 = (int *)(iVar10 + 0xc);
                  iVar8 = *piVar14;
                  iVar10 = iVar9;
                } while (*piVar14 != 0);
LAB_000a262a:
                if (((iVar10 == iVar4 + 0x14) || (param_4 < *(uint **)(iVar10 + 0x10))) ||
                   ((param_4 == *(uint **)(iVar10 + 0x10) && (param_5 < *(uint **)(iVar10 + 0x14))))
                   ) goto LAB_000a2640;
              }
              piVar14 = (int *)(puVar15 + -8);
              puVar15 = puVar15 + -8;
              for (puVar1 = *(undefined4 **)(iVar16 + 0x30); puVar1 != (undefined4 *)0x0;
                  puVar1 = (undefined4 *)*puVar1) {
                *(undefined4 *)(puVar15 + -0xc) = 1;
                *(undefined4 *)(puVar15 + -0x10) = 0;
                *(int **)(puVar15 + -0x14) = &local_6c;
                *(undefined4 **)(puVar15 + -0x18) = puVar1 + 1;
                *(int *)(puVar15 + -0x1c) = iVar10 + 0x18;
                *(undefined1 **)(puVar15 + -0x20) = local_c0;
                *(undefined4 *)(puVar15 + -0x24) = 0xa268b;
                local_6c = iVar10 + 0x18;
                FUN_00074340();
                piVar14 = (int *)(puVar15 + -4);
                puVar15 = puVar15 + -4;
              }
            }
          }
        }
      }
LAB_000a20dc:
      local_b4 = local_b4 + 1;
      param_7 = param_7 + 3;
      puVar15 = (undefined1 *)piVar14;
    } while (param_8 != local_b4);
  }
  if (local_4c[0] != local_c8) {
    *(undefined1 **)((int)piVar14 + -0x10) = local_4c[0];
    *(undefined4 *)((int)piVar14 + -0x14) = 0xa278a;
    FUN_003ae080();
  }
  return;
}

